-4

次のコードで 2 つの主な問題を見つけるように求められました。

char* name(char* first_name, char* last_name){
char buff[100];
sprintf (buff, "%s %s", first_name, last_name);
return (buff);
}

問題が 1 つだけ見つかりました。buff 配列が関数スコープ内で宣言されました。つまり、この関数を呼び出した関数に戻ると、何か「空」(バフ配列ではない) へのポインターが返されます。2番目の問題が見つかりませんでした。助けていただけますか?ありがとうございました!

4

4 に答える 4

1

バッファー オーバーフロー、sprintf代わりにsnprintf(多少冗長であることはわかっています)、パラメーターは である必要がconst char*あります。null チェックはありません。バフを囲む不要な括弧はありません。インデントはありません。

于 2013-06-07T12:41:33.823 に答える