struct integer3_1 {
    int value3;
};

typedef struct integer3_1* intPtr;

struct integer3{
    intPtr* vPtr;
};

typedef struct integer3* intpointer3;

int main() {
    int value = 5;
    intpointer3 intPtr3 = (intpointer3)malloc(sizeof(struct integer3));
    //(*intPtr3->vPtr)->value3 = value;
    //(*(*intPtr3).vPtr)->value3 = value;
    //(*intPtr3->vPtr)->value3 = &value;
    //(*(*intPtr3).vPtr)->value3 = &value;

return;

}

嗨,我有个问题
如何取消对intPtr3的引用,以便能够将5的值存储到intPtr3->vPtr->value3
我试过几种方法,但总是出错
第二部分
//1st line
intpointer3 intPtr3 = (intpointer3)malloc(sizeof(struct integer3));
//2nd line
(*intPtr3).vPtr = (intPtr*)malloc(sizeof(intPtr));
//3rd line
*((*intPtr3).vPtr) = (intPtr)malloc(sizeof(struct integer3_1));

1)在第1行,它为intpointer3分配一个存储器?
2)在第2行,您取消引用并为intPtr分配了一个存储空间?
3)在第三行,你有什么问题?您分配了哪些存储空间?
4)两者的区别是什么
(intpointer3)malloc(sizeof(struct integer3));


malloc(sizeof(struct integer3));

?

最佳答案

问题不在于取消引用。您还没有为integer3_1分配内存。

关于c - 解引用三指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15860574/

10-12 21:46