我在此函数中有一个函数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/

10-16 11:11