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
Я попытался несколько способов, но я продолжал получаю ошибку @@ в
2-й части
//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) На второй строке вы разыскиваете и выделяете хранилище для intPtr?
3) На третьей строке, что вы имеете разыменование? какое хранилище вы выделили?
4) В чем разница между
(intpointer3)malloc(sizeof(struct integer3));
и
malloc(sizeof(struct integer3));
?
Я пробовал код, но он не работает? –
@RexRau .. Вы сталкиваетесь с проблемами 'компиляции' или' runtime'? Я пробовал это на 'gcc', и он работает на моем конце. – Ganesh
ggc complier? Я использую visual stdio 2012, я думаю, что код не работает на визуальном stdio? –