假设我有一个名为 '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))
有人可以帮我吗?