1

在为我的 iOS Xcode 项目使用静态 C++ 库时,我遇到了 printf 和 Xcode LLDB 调试器的奇怪行为,有时我的打印结果printf("%s", char*)是 char 与数字或垃圾字符连接。所附图像不言自明。任何的想法?

在此处输入图像描述

4

2 回答 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 回答