考虑以下列表:


  [LinkNode *头-LinkNode * node1-LinkNode * node2]


我正在创建一个FIFO堆栈。
我调用pop(),我想弹出node1。

LinkNode::LinkNode(int numIn) {
    this->numIn = numIn;
    next = null;
}
.
.
.
int LinkNode::pop() {
    Link * temp = head->next;
    head = temp->next;
    int popped = head->nodeNum;
    delete temp;
    Return numOut;


题:
1)头应该是指针还是LinkNode *?
2)Link * temp是在调用堆栈上创建的,当弹出完成时,temp是否不会自动删除?
3)我的主要困惑是temp-> next的值是什么?这是否指向等于node2的node1.next?

感谢您的帮助?

我的参考文献是Weiss编写的C ++ for Java Programmers。

最佳答案

LinkNode *是一个指针。所以我不确定你在问什么。
该变量超出范围,但这不会自动删除动态分配的数据。在C ++中,如果您动态分配数据(调用new),则需要释放它(调用delete

07-24 15:33