我在此函数中有一个函数create_system
,我想将内存分配给名为c_array
的数组,该数组的类型是指向结构Activity的指针。
我知道我尝试分配内存的方式是错误的!我尝试了一切,这是在整个Google上搜索这种分配方式后得到的:
Activity* ((*sys)->c_array)=malloc(num_challenges * sizeof(Activity));
但出现以下错误:
expected ')' before '->' token
我的任何想法在这里做错了!
我尝试过的
typedef struct SRoomSystem
{
Activity *c_array;
} RoomSystem;
int num_challenges=6;//this is just an example
Result create_system(RoomSystem **sys){
Activity* ((*sys)->c_array)=malloc(num_challenges * sizeof(Activity));
}
最佳答案
您遇到此问题的原因很可能是@Steephen已指出的内容:(*sys)->c_array = malloc(num_challenges * sizeof(Activity));
。最有可能是多余的括号引起了错误。
关于c - 如何在函数中为结构分配内存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43970197/