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/