如何为函数中的结构分配内存?

时间:2017-05-15 00:53:13

标签: c

我在这个函数中有一个函数create_system我想为一个名为c_array的数组分配内存,它的类型是指向struct Activity的指针。 我得到了我试图分配内存的方式是错误的!我尝试了所有的东西,这是我在谷歌搜索到这种分配方式后得到的:

  

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));
}

1 个答案:

答案 0 :(得分:1)

你遇到这个问题的原因很可能是@Steephen已经指出的问题:(*sys)->c_array = malloc(num_challenges * sizeof(Activity));。最有可能是额外的括号导致错误。