代码之家  ›  专栏  ›  技术社区  ›  Federico klez Culloca

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

  •  31
  • Federico klez Culloca  · 技术社区  · 15 年前

    我有一个结构:

    struct mystruct
    {
        int* pointer;
    };
    
    structure mystruct* struct_inst;
    

    现在我想更改 struct_inst->pointer . 我该怎么做?

    编辑

    我没有写,但是 pointer 已经指向分配给 malloc .

    2 回复  |  直到 6 年前
        1
  •  46
  •   Arkku    15 年前

    就像任何指针一样。改变 地址 它指出:

    struct_inst->pointer = &var;

    改变 价值 地址:

    *(struct_inst->pointer) = var;

        2
  •  4
  •   Brian R. Bondy    15 年前

    您正在创建mystruct类型的指针,我想您可能不需要指针:

    int x;
    struct mystruct mystruct_inst;
    mystruct_inst.pointer = &x;
    *mystruct_inst.pointer = 33;
    

    如果需要堆上的mystrut指针,请执行以下操作:

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