指针是很像任何其它变量,不同之处在于为指针,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
啊,我现在明白了。你的评论使得它更清晰。谢谢! –