繁体   English   中英

打印char时printf的奇怪行为-LLDB调试器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM