10/04/24 09:17:20
>351
元々の質問は、一般的にはその2通りのやりかただろう、と答える。
しかし(1)のデメリットが理解できない。
(1)のデメリットは呼び出し元で「入れたいメモリー領域がある場合」、createした構造体をコピーする必要がある。
とくに「入れたいメモリ領域がある場合」という部分が不明。
ポインタがメンバになっているときに、その実体が欲しいってこと?
>354 >361を見てると、あってんだか違うんだか。creat関数の中でメンバを取得しようとしているのかワケワカ。
もしメンバがの実体が欲しいなら、そういう機能を実現した関数を作ればよい。
こんな感じじゃないか。
void get_data(struct my_struct* pMyData, void *pData)
{
pData = malloc(pMyData->size);
memmove(pData, pMyData->ptr);
}