【发布时间】:2013-04-24 02:06:01
【问题描述】:
假设我有一个名为 'Foo' 的结构,其中我有一个二维指针数组
typedef struct Foo {
Stuff* (*stuff)[16];
} Foo;
我有一个类似这样的 initializeFoo 函数,它为整个对象分配内存
void initializeFoo(Foo **foo) {
*foo = (Foo*)malloc(sizeof(Foo));
}
但是,在运行我的程序时,我会导致分段错误(核心转储) 我在想我需要为 *stuff 分配内存,但我该怎么做呢?我会把它放在 initializeFoo 函数中吗?
我的猜测是使用:
(*foo)->stuff = (Stuff*(*)[16])malloc(sizeof(Stuff))
谁能帮帮我?
【问题讨论】:
标签: c pointers memory multidimensional-array allocation