в условиях, когда i не инициализирована?
кстати, а какая патология мозга нужда заставила тебя написать на форум, вместо того чтобы использовать отладчик? ходят слухи, что их придумали специально для таких ситуаций.....
кстати, а какая нужда заставила тебя написать на форум, вместо того чтобы использовать отладчик? ходят слухи, что их придумали специально для таких ситуаций.....
Дык форум же лучший отладчик! Он вам еще и объяснит что, почему и как исправить...
в условиях, когда i не инициализирована?
кстати, а какая патология мозга нужда заставила тебя написать на форум, вместо того чтобы использовать отладчик? ходят слухи, что их придумали специально для таких ситуаций.....
int count,i;
Это разве не инициализация?
Почему написал - потому что опыта работы с отладчиком нет никакого. Сейчас буду смотреть.
в условиях, когда i не инициализирована?
кстати, а какая патология мозга нужда заставила тебя написать на форум, вместо того чтобы использовать отладчик? ходят слухи, что их придумали специально для таких ситуаций.....
Смутило меня то, что программа валилась сразу же после scanf не доходя до цикла for.
валилась она как раз в цикле.
просто есть такое понятие, как буфферизированный ввод/вывод.
т.е. совсем не факт, что сразу после вызова printf произойдет вывод строки на экран.....
валилась она как раз в цикле.
просто есть такое понятие, как буфферизированный ввод/вывод.
т.е. совсем не факт, что сразу после вызова printf произойдет вывод строки на экран.....
На сколько я помню, если '\n' printf передается, то даже если вывод буфферезированный, вывод строки произойдет.
d_Sun, странно, никогда про это не слышал.... но если заменить в примере автора "ONE" на "ONE\n", то эта строка действительно выводится до падения.
это особенность реализации, или про это где-то в стандарте сказано?
d_Sun, странно, никогда про это не слышал.... но если заменить в примере автора "ONE" на "ONE\n", то эта строка действительно выводится до падения.
это особенность реализации, или про это где-то в стандарте сказано?
Нет, это от реализации не зависит... Это в настройках драйвера терминалов. '\n' это тот esc - символ который является сигналом вывести все содержимое буфера...
Честно - прочитал только первое сообщение, остальные - мельком .
azalio, пользуй gdb - там есть команда bt (или backtrace), которая точно тебе скажет где вылетело .
А прога valgrind скажет почему .
Извините, если влез не туда/сказал не то .
Серьезность - это способ сделать простые вещи сложными.
Если много знать - устанут глаза. Если много спать - то нет.
Нас никому не сбить с пути - нам пофигу куда идти.
:-)
d_Sun, странно, никогда про это не слышал.... но если заменить в примере автора "ONE" на "ONE\n", то эта строка действительно выводится до падения.
это особенность реализации, или про это где-то в стандарте сказано?
Нет, это от реализации не зависит... Это в настройках драйвера терминалов. '\n' это тот esc - символ который является сигналом вывести все содержимое буфера...
а разве функция setvbuf() не для этого? если не ошибаюся, то по умолчанию для stdout построчная буферизация, но ведь можно ее отменить:
setvbuf(stdout,NULL,_IONBF,0);
а разве функция setvbuf() не для этого? если не ошибаюся, то по умолчанию для stdout построчная буферизация, но ведь можно ее отменить:
setvbuf(stdout,NULL,_IONBF,0);
извините, если что-то не понял и сказал не то
Вы говорите про буфферизацию потоков В/В, а вывод на терминал происходит через драйвер терминала...
Честно говоря - лень распинаться , могу только в очередной раз порекомендовать:
W. Richard Stevens. Advanced Programming in the Unix Environment