我试图使用malloc为一个结构指针数组分配堆内存,但是我无法让它工作。下面是我的代码,但是当我使用gcc编译时,出现了如下错误:“error:invalid type argument of'>'”
我想建立一个mystruct_指针数组,它应该指向实际的mystruct,我想我可以在它的成员字段上使用“->”。我的代码哪里有问题?我觉得应该管用。谢谢

typedef struct
{
    int id;
    bool status;
} __mystruct_t;

typedef __mystruct_t* mystruct_pointer;

mystruct_pointer struct_ptr_array;

void my_init(int number)
{
    struct_ptr_array = (mystruct_pointer) malloc(sizeof(__mystruct_t) * number);

    int i;
    for (i = 0; i < number; i++)  /* initialize the array of struct pointers */
    {
         struct_ptr_array[i]->id = i;
         struct_ptr_array[i]->status = false;
     }
}

最佳答案

用“.”替换“->”。因为'struct_ptr_array[i]'已经取消对指针的引用。

关于c - malloc结构指针数组,请帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22006991/

10-16 20:46