1

iOS Xcode プロジェクトの静的 C++ ライブラリを使用しているときに、printf と Xcode LLDB デバッガーで奇妙な動作に遭遇しました。出力結果printf("%s", char*)が、数字または文字化け文字と連結された char になることがありました。添付の画像はそれ自体を物語っています。何か案が?

ここに画像の説明を入力

4

2 に答える 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 に答える