我想用malloc来分配一堆结构指针的堆内存,但我不能让它工作。下面是我的代码,但是当我用gcc编译时,我得到了这样的错误“error:' - >'的无效类型参数”malloc结构指针的数组,需要帮助
数组我想设置一个mystruct_pointer数组,它应该指向实际__mystruct_t,我想我可以在其成员字段上使用“ - >”。我的代码出错了?我认为它应该工作。感谢
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;
}
}
替换两行能否请您解释一下为什么你坚持“mystruct_t *”,而不是采取“mystruct_t **”指针数组? – Subhajit
@Subhajit这里没有指针数组....并且也不需要任何一个。 – Lundin
了解,struct_ptr_array保存结构数组的地址,struct_ptr_array [i]表示一个单一的结构实例,如果我错了,请纠正我的问题 – Subhajit