取消引用结构指针内的指针
我有一个结构:
struct mystruct { int* pointer; }; structure mystruct* struct_inst;
现在我想更改struct_inst->pointer
的值。 我怎样才能做到这一点?
编辑
我没有写它,但pointer
已经指向一个用malloc
分配的内存区域。
和任何指针一样。 要更改它指向的地址 :
struct_inst->pointer = &var;
要更改它指向的地址的值 :
*(struct_inst->pointer) = var;
你正在创建一个mystruct类型的指针,我想也许你不想要一个指针:
int x; struct mystruct mystruct_inst; mystruct_inst.pointer = &x; *mystruct_inst.pointer = 33;
如果您需要在堆上使用mystruct指针:
int x; struct mystruct *mystruct_inst = malloc(sizeof(struct mystruct)); mystruct_inst->pointer = malloc(sizeof(int)); *(mystruct_inst->pointer) = 33; /*Sometime later*/ free(mystruct_inst->pointer); free(mystruct_inst);