【发布时间】:2011-09-07 17:12:50
【问题描述】:
尝试显示 (int) 类型的元素时出现分段错误
template <class T>
void Lista<T>::imprimir()
{
NodoL *ptr = new NodoL;
ptr->sig = pri->sig;
cout << *ptr->sig->elem; //THIS DISPLAYS CORRECTLY
cout << *ptr->sig->sig->elem; //SEGMENTATION FAULT
}
【问题讨论】:
-
请贴出相关代码。
sig是什么?答案是“你做错了”,但无法判断,因为你没有显示错误代码。 -
我猜
sig是“siguiente”(或类似的)的缩写,西班牙语为“next”,这是链表的代码。但请澄清。 -
您没有提供足够的信息来说明 NodoL 类的结构及其构造函数的作用。 NodoL->sig 应该初始化为什么?这很可能是由于构造函数中的类成员初始化不当造成的。
-
为什么您的列表打印功能会创建一个new 列表节点?我相信您的导师会告诉您打印列表根本不应该修改列表。它不应该创造任何新的东西。它可能应该有一个循环,以便您可以打印任意大小的列表。
标签: c++ pointers segmentation-fault