在为我的 iOS Xcode 项目使用静态 C++ 库时,我遇到了 printf 和 Xcode LLDB 调试器的奇怪行为,有时我的打印结果printf("%s", char*)
是 char 与数字或垃圾字符连接。所附图像不言自明。任何的想法?
问问题
406 次
2 回答
2
似乎按预期工作。%s
需要以 NUL 结尾的字符串,也就是说,对于给定的char*
,打印任何内容,直到第一个'\0'
。您必须分配 5 个字节并分配a[4]=0;
是否希望您的数组适合%s
.
于 2013-01-17T22:54:56.150 回答
0
如果您使用格式说明符打印字符数组,则a
需要以 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);
于 2013-01-17T22:54:21.753 回答