C言語なら、ぬるぽに聞け! Part 〈53〉
■ このスレッドは過去ログ倉庫に格納されています
0144デフォルトの名無しさん
NGNGstrcpyの問題点というと、コピー先のサイズがあふれるかどうか感知できない点かな。
こういうこと;
char baka[2];
char hoge[] = "hogehoge";
strcpy(baka, hoge);
bakaには2バイトしか大きさがないのに、9バイトコピーされてしまい、
結果バッファオーバーフローがおきる。
けどこういうのはstrlenを使うなりすれば前もって検知することは可能なんで、
strcpyを絶対に使うなという話にはならない。
ちなみに標準関数にはstrncpyという一見コピー先のサイズに合わせてくれるような
関数があるけど、こいつの仕様はヘンなので使わないほうがよい。
自前でサイズを見る関数を作るとかするといいよ。
■ このスレッドは過去ログ倉庫に格納されています