取消引用结构指针内的指针

时间:2010-04-05 23:29:21

标签: c pointers struct

我有一个结构:

struct mystruct
{
    int* pointer;
};

structure mystruct* struct_inst;

现在我想更改struct_inst->pointer指向的值。我怎么能这样做?

修改

我没有写它,但是pointer已经指向分配了malloc的内存区域。

2 个答案:

答案 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);