【发布时间】:2016-10-17 22:21:15
【问题描述】:
我有一个类似的结构
struct mystruct {
int x;
int size_of_data;
int *data;
}
我想在连续内存区域为 mystruct 和数据分配内存。
我尝试了malloc(sizeof(struct mystruct)+size_of_data*sizeof(int)),但出现了分段错误。
我也试过了:
struct mystruct *var = malloc(sizeof(*var))
var->data = malloc(size_of_data*sizeof(int))
但问题是分配器不能保证var->data 将与整个结构连续,但我强烈需要保持连续。有什么想法吗?
mystruct 需要保持不变
【问题讨论】:
-
malloc(sizeof(struct mystruct)+size_of_data*sizeof(int))应该可以工作。显示您的代码和错误 -
您的第一次尝试是可行的,您一定在某个地方犯了错误。请发帖MCVE
标签: c malloc dynamic-memory-allocation