gpt4 book ai didi

c++ - 从不兼容类型 'char' 分配给 'void'

转载 作者:行者123 更新时间:2023-11-27 22:34:54 25 4
gpt4 key购买 nike

尝试使用堆栈反转链表,但在尝试重写数据时不断遇到问题。当我从堆栈中弹出时,尝试从数据类型 void 分配一个 char。

    void CharList::reverseNodes(){

CharNode *nodePntr;
CharNode *pre_nodePntr;
std::stack<char> myStack;

pre_nodePntr = nullptr;
nodePntr = nullptr;

if (top){
nodePntr = top;

while (nodePntr != nullptr){
myStack.push(nodePntr->data);
nodePntr = nodePntr->pntr;
}
nodePntr = top;
while (!myStack.empty()) {
nodePntr->data = myStack.pop();
nodePntr = nodePntr->pntr;
}

} else{
std::cout << "No nodes exist to reverse." << std::endl;
}
}

尝试保存数据时,这是我遇到代码错误的行。

nodePntr->data = myStack.pop();

最佳答案

哦,这很简单! Stack::pop() 方法不会返回您尝试分配给 char 属性的任何内容(这就是为什么无效)。您需要使用 myStack.top() 获取值,然后像这样调用 myStack.pop():

nodePntr->data = myStack.top();
myStack.pop();
nodePntr = nodePntr->pntr;

关于c++ - 从不兼容类型 'char' 分配给 'void',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55998552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com