指針是很像任何其它變量,不同之處在於爲指針,T* ptr
,其值預計是一個地址記憶中的T實例。
你已經創建了一個未初始化變量的數組 - 你沒有指出任何東西。
想象一個指針作爲便箋與一個東西的位置。你所做的是從堆棧頂部撕下36張空白的便籤紙。
您需要創建一些行李標籤指向,但是您還需要負責釋放這些對象。
struct luggageTag{
int seat;
bool luggage;
};
int main(){
luggageTag *tagBox[36];
for (size_t i = 0; i < 36; ++i) {
tagBox[i] = new luggageTag;
}
tagBox[2]->luggage = true;
// memory leak unless you do:
// for (size_t i = 0; i < 36 ; ++i)
// delete tagBox[i];
}
或者你可以創建一個指向36個行李標籤的數組:
struct luggageTag{
int seat;
bool luggage;
};
int main(){
luggageTag *tagBox = new luggageTag[36];
tagBox[2]->luggage = true;
// ...
delete [] tagBox; // free the memory
}
如果這不是一所學校工作的一部分,你可能想看看使用std::array
或std::vector
。
'tagBox [2] - >行李箱'表示'(* tagBox [2])。luggage',對吧?所以它解除引用tagBox [2]'。 'tagBox [2]'指向什麼? – immibis
啊,我現在明白了。你的評論使得它更清晰。謝謝! –