私はそれstrdup
が悪いと述べているいくつかのポスターを見てきました。これについてコンセンサスはありますか?malloc
私は何の罪悪感もなくそれを使用しており、 /を使用するよりも悪い理由はわかりませんmemcpy
。
評判を得るかもしれないと私が考えることができる唯一のことstrdup
は、呼び出し元がそれを悪用する可能性があることです (たとえば、返されたメモリを解放する必要があることに気付かない; strdup された文字列の最後まで strcat を試みます)。しかし、malloc された文字列も、誤用の可能性がないわけではありません。
質問が役に立たないと考えている人たちへの返信と謝罪に感謝します(投票は締め切ります)。strdup
回答を要約すると、それ自体が悪である という一般的な感覚はないようですが、C の他の多くの部分と同様に、不適切または危険に使用される可能性があるという一般的なコンセンサスがあります。
「正しい」答えは実際にはありませんが、それを受け入れるために、@ nneoneoの答えを受け入れました-それは@ R ..の答えでもありました。