Поведение странного указателя при передаче через функцию [duplicate]

Очистить и перестроить

. «Чистая» сборки может удалить «мертвую древесину», которая может быть оставлена ​​лежащей рядом с предыдущими сборками, неудачными сборками, неполными сборками и другими проблемами сборки.

В общем случае среда IDE или сборка будет включать в себя некоторую форму «чистой» функции, но это может быть неправильно настроено (например, в ручном файле) или может завершиться неудачей (например, промежуточные или результирующие двоичные файлы - только).

После завершения «очистки» убедитесь, что «чистый» преуспел, и весь сгенерированный промежуточный файл (например, автоматический файл makefile) был успешно удален.

Этот процесс можно рассматривать как конечный вариант, но часто является хорошим первым шагом ; особенно если недавно был добавлен код, связанный с ошибкой (локально или из исходного репозитория).

1
задан 804b18f832fb419fb142 3 November 2013 в 22:49
поделиться

3 ответа

По умолчанию stdout является строковым буферизированным при записи на терминал, полностью буферизованным при записи на любой другой тип потока. Поскольку вы не печатаете новые строки, вывод буферизуется. Вы можете изменить режим буферизации с помощью setbuf(), заканчивать каждую строку с помощью новой строки или вызывать fflush(), когда вы хотите, чтобы печать выполнялась с помощью plac.

4
ответ дан Barmar 26 August 2018 в 18:03
поделиться

Это происходит потому, что printf записывает в stdout, который, случается, буферизуется. Подробнее см. Здесь .

3
ответ дан Community 26 August 2018 в 18:03
поделиться

Добавить fflush (stdout) после каждого printf. Ваш выход мал и остается в буфере до выхода прогамы.

2
ответ дан dnk 26 August 2018 в 18:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: