我试图使用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/