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