10/04/25 00:42:10
>351 >420
あなたの言う1)と2)の違いを、把握できていなかったから、議論がぐるぐる回っていたぞ。
議論の焦点は
>入れたいメモリ領域を渡すのが(2)で、入れたいメモリ領域を渡さず関数内部でメモリ領域を確保するのが(1)です。これが定義です。
ということだね。
そうでであるならば
>(1)の場合は、可変部の情報を含めサイズ情報を渡しません。
これは無理。
1)の実現例としてstrdupを挙げているのなら、str系は終端文字列付きという制限を与えることで、
間接的にサイズ情報を与えている。
>404
>いいえ、関数の中でmallocを行うという点で、strdupと>>351の(1)は同じです。
私には同じには見えないな。
malloc-free, new-delete, new[]-delete, create_my_struct-delete_my_struct
は対に見える。
だけど関数内部でmallocするhogeがあるとしてhoge-freeは対には見えない。
そういうことに注意してコーディングしたくない。
だからstrdup使うくらいなら、mallocしてstrcpyして、freeする。