You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

链表实现stack调用top方法出现int*转int错误如何解决?

错误触发原因
  • 报错的核心是返回值类型不匹配:你top()方法声明的返回值类型是模板参数Type,本次实例化时Type为int,但你实际返回的stackTop->list是int*指针类型,编译器不允许指针隐式转换为int类型,因此抛出转换错误。
  • 出现这个问题说明你链表节点的list成员是指向存储元素的指针,而非存储元素本身,直接返回指针就会出现类型冲突。
修复方案

你可以根据自己的节点定义选择对应修复方式:

  • 方案一:如果节点的list成员本身就是设计为指向元素的指针,只需要对返回值做解引用操作即可:
template <class Type>
Type stackType<Type>::top() const {
     assert(stackTop != nullptr);  // 栈为空时终止程序运行
     return *stackTop->list;  // 解引用指针,返回指向的实际栈顶元素
}
  • 方案二:如果是节点定义失误,list本来就应该直接存储元素值,那么修改链表节点的结构体定义,将成员Type* list调整为Type list即可,原有top()方法无需修改。

内容的提问来源于stack exchange,提问作者L0ST

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:54:05