簡體   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