LINUX.ORG.RU

Help. C.


1

2

Доброго времени суток. Изучаю C. Столкнулся с проблемой: если я открываю 2 разных файла при помощи fopen, то при использованиие gets или fgets вылетает

Segmentation fault

Если fopen использован 1, то все хорошо.

Где искать ошибку?

Сильно не бейте.


Ответ на: комментарий от Deleted

КР протухшее говно, нахрен ты его приплетаешь, нихрена даже о нём не знаешь?

Для справки - {} - это не отсутвие инициализации, а нулевая(пустая) инициализация.

char * str = (char[256]){};//тут будет 256 нулей.
char str1[256];//тут же будет 256 неинициализированных значений.

В первом случае str является указателем, который можно менять. str ты можешь менять, ++str - это инкримент, оператор изменяющий значение. Он возвращает изменённое значение str;

Во втором массив проксируется указателем, причем константным. str1 константа и ты не можешь его поменять. ++str1 - не работает, ибо str1 константа. (str1 + 1) - это не инкремент, а сложение, возвращая новый объект - объект сложения.

anonymous
()
Ответ на: комментарий от momo

Ничего. Может попытаться почитать новые стандарты - там много всяких примеров. А так все учебники и рядовые сишники завязли в 70-80-х. Если ты хочешь знать сишку на уровне ansi C, либо ещё более раннего KR С, то КР тебе хватит.

c89 разбирается в любом учебнике, вменяемых учебников чего-то выше я не видел.

Учебников которые учат пониманию сишки я вообще не видел, разве чутка в КР и помелочи. Да и вообще способность понять сишку это врожденное, а не приобретаемое. Это определённое мировоззрение. Которое формируется не учебниками.

anonymous
()
Ответ на: комментарий от momo

cast int13h;

Я уже отвечал - я не знаю книг, которые хотябы на приемлемом уровне раскрывают сишку и сишное мышление. Чутка это делает КР, но код там уже давно устарел.

Возможно они есть - я их не знаю. В основном книги это рецепты по готовке.

Пытайся писать красивый код, попытайся решить все проблемы о которых говорят пацаны. Попытайся понять как всё это добро работает. По мне так это единственный путь чему-то научится. Возникла проблема - решаешь напару с гуглом.

Можно почитать новые стандарты - там есть много примеров.

anonymous
()
Ответ на: комментарий от anonymous

А можешь подкинуть примеры задач, на которых поучиться?

anonymous
()
Ответ на: комментарий от anonymous

в КР какой стандарт учитывается? читать последний или все после того, который учитывается в КР?

momo
() автор топика
Ответ на: комментарий от momo

В КР КР си, ибо писали её до с89. В основном везде с89.

Читать с99 с11.

anonymous
()
Ответ на: комментарий от momo

читай алгоритмы Седживика на си и еще есть не плохая книжка по лекциям мфти Ворожцов и Винокуров «алгоритмы...» по сути k&r достаточно чтобы более или менее понимать си.

IvanR ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.