[英]printf strange behavior when printing char - LLDB debugger
当为我的iOS Xcode项目使用静态C ++库时,我遇到了printf和Xcode LLDB调试器的奇怪行为,有时我的printf("%s", char*)
打印结果是用数字或垃圾字符连接的char。 所附图片说明了一切。 任何想法?
似乎按预期工作。 %s
需要以NUL终止的字符串,也就是说,对于给定的char*
,请打印任何内容,直到第一个'\\0'
为止。 您必须分配5个字节并分配a[4]=0;
如果您希望数组适合%s
。
如果要使用%s
格式说明符来打印字符数组a
,则必须以'\\0'
结尾:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.