比方說,我有一個名爲「富」結構和裏面我有一個指針在C的結構內包裹着指針的二維數組分配內存
typedef struct Foo {
Stuff* (*stuff)[16];
} Foo;
的二維數組我有一個initializeFoo功能像這樣,對於整個對象
void initializeFoo(Foo **foo) {
*foo = (Foo*)malloc(sizeof(Foo));
}
分配內存然而,只是我導致分段故障(核心轉儲)上運行我的程序 我在想,我需要分配的內存*的東西時,但我該怎麼做?我會堅持在initializeFoo函數?
我的猜測是使用:
(*foo)->stuff = (Stuff*(*)[16])malloc(sizeof(Stuff))
有人能幫助我嗎?