- 354 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 01:51:37 ]
- >>353
実装はこんな感じです。 struct my_struct* create_my_struct(int param) { struct my_struct* md = (struct my_struct*)malloc(sizeof(struct my_struct) + sizeof(int)*param); md->size = param; md->ptr = malloc(param); return md; } void delete_my_struct(struct my_struct* md) { free(md->ptr); free(md); } デメリットは、下記のような場合、memcpyが必要なことです。 int get_data(char* buf, int size) { struct my_struct* md = create_my_struct(size); //←ここでbufを渡せたら int ret = memcpy(buf, md->ptr, size); //←ここでコピーしなくていい delete_my_struct(md); return ret; }
|

|