iOS Xcode プロジェクトの静的 C++ ライブラリを使用しているときに、printf と Xcode LLDB デバッガーで奇妙な動作に遭遇しました。出力結果printf("%s", char*)
が、数字または文字化け文字と連結された char になることがありました。添付の画像はそれ自体を物語っています。何か案が?
質問する
406 次
2 に答える
2
期待どおりに動作するようです。%s
には、NUL で終わる文字列が必要です。つまり、特定の に対してchar*
、最初の まですべてを出力し'\0'
ます。a[4]=0;
配列を に適したものにする場合は、5 バイトを割り当てて割り当てる必要があります%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 に答える