Cでは、を使用strdup
してバッファを簡潔に割り当て、そこに文字列をコピーできます。しかし、私が知る限り、一般的な記憶には同様の機能はありません。たとえば、私は言うことはできません
struct myStruct *foo = malloc(sizeof(struct myStruct));
fill_myStruct(foo);
struct myStruct *bar = memdup(foo, sizeof(struct myStruct));
// bar is now a reference to a new, appropriately sized block of memory,
// the contents of which are the same as the contents of foo
したがって、私の質問は3つあります。
- 私が知らないこのような標準ライブラリ関数はありますか?
- そうでない場合は、とを明示的に呼び出さずにこれを行うための簡潔で、できれば標準的な方法は
malloc
ありmemcpy
ますか? - なぜCには含まれているのに含まれ
strdup
ていないmemdup
のですか?