我有一个结构:
struct mystruct
{
int* pointer;
};
structure mystruct* struct_inst;
现在我想更改struct_inst->pointer
指向的值。我怎么能这样做?
修改
我没有写它,但是pointer
已经指向分配了malloc
的内存区域。
答案 0 :(得分:46)
与任何指针一样。要更改地址,请指向:
struct_inst->pointer = &var;
要更改值指向的地址:
*(struct_inst->pointer) = var;
答案 1 :(得分:4)
你正在创建一个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);