Работая со статической библиотекой C ++ для моего проекта iOS Xcode, я встретил странное поведение с отладчиком printf и LcodeB Xcode, иногда мои результаты печати printf("%s", char*)
был символ, соединенный с числами или мусорными символами. Прикрепленное изображение говорит само за себя. Любая идея?
Кажется, работает как ожидалось. %s
требует NUL-оканчивающейся строки, то есть для данного char*
распечатай что-нибудь до первого '\0'
, Вы должны выделить 5 байтов и назначить a[4]=0;
если вы хотите, чтобы ваш массив подходил для %s
,
Массив символов a
должен быть завершен с '\0'
если вы печатаете его с %s
спецификатор формата:
char * a = new char[5];
a[0] = 'i';
a[1] = 'p';
a[2] = 'o';
a[3] = 'd';
a[4] = '\0';
printf("word: %s\n", a);