我遇到问题正确解除引用指向驻留在结构数组中的整数的指针。代码的相关部分是:
typedef struct hf_register_info {
int *p_id; /**< written to by register() function */
header_field_info hfinfo; /**< the field info to be registered */
} hf_register_info;
.
.
hf_register_info hf[MAX_HF_COUNT];
.
.
*(hf[i].p_id) = -1;
上面的最后一行代码会导致异常。我如何正确地推理p_id?
谢谢和问候......保罗
答案 0 :(得分:1)
您需要初始化指针。在初始化数组时,结构中的指针并没有指向任何东西。
因此,对于数组中的每个结构,您希望取消引用指针并为其赋值,您需要先在内存中分配空间。
hf_register_info hf[MAX_HF_COUNT];
// some code here
hf[i].p_id = malloc(sizeof(int)); // or unsigned long or whatever
*(hf[i].p_id) = -1;