我有一个结构体:
struct mystruct
{
int* pointer;
};
structure mystruct* struct_inst;
现在我想改变 struct_inst->pointer
指向的值。我该怎么做?
编辑
我没有写它,但是 pointer
已经指向了一个使用 malloc
分配的内存区域。
struct_inst->pointer = &var;
要更改它所指向的地址上的值:
*(struct_inst->pointer) = var;
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);
struct mystruct
分配任何内存,只是一个未初始化的指向这样一个结构体的指针。但当然,结构体中的 pointer
也必须指向某个地方。=) - Arkku