char* buf;
buf = malloc(BUFSIZ);
memset(buf ,0 , BUFSIZ);
memsetはbuf変数をBUFSIZのサイズで初期化すると思いますが、mallocもメモリのサイズBUFSIZEのブロックを割り当てて、変数bufにブロックの先頭へのポインタを返す... memsetが使えるかどうかわかりませんサイズBUFSIZEでデータを初期化するため、ポインターの場合、私たちはそれに注意しません....この問題を解決するために何か提案できますか、ありがとう
こんにちは、答えてくれてありがとう。そのため、問題は一般に malloc が失敗する可能性があり、その後 buf が NULL を指すという事実に起因することを理解しました。そして、コードの欠陥を修正する最善の方法は、buf が null に等しいかどうかを確認することでしょうか?
char* buf;
buf = malloc(BUFSIZ);
if(buf!=null)
{
memset(buf ,0 , BUFSIZ);
}
コードの欠陥を修正する最善の方法は、buf が null に等しいかどうかを確認することでしょうか?
char* buf;
buf = malloc(BUFSIZ);
if(buf!=null)
{
memset(buf ,0 , BUFSIZ);
}
実際に malloc が失敗する可能性はありますか? それとも単なる理論ですか?