0
我正在处理一个项目,我正在尝试构建一个节点数组作为堆,以便在数组的每个索引中,我可以存储一个名称和值。本质上,我希望我的构造函数将第一个索引的值设置为-1,以便我可以判断它是否为空(值为-1表示空索引)。从节点阵列的Seg故障
问题是我得到一个seg故障,我不知道为什么。下面是错误代码:
头文件:
class tripe
{
public:
tripe();
void initialize(string filename); //initialize tripe data struct
void insert(string name, int grade); //insert given pair into structure
void search(string prefix); //print list of entries that matches prefix
void findMin(); //print min grade entry
void buildheap(string name,string grade,int size);
heapnode *heap[100]; //TROUBLESOME VARIABLE
trinode *head;
trinode *let[25];
};
class heapnode
{
public:
string student;
int score; //WANT THIS TO BE -1 FOR FIRST INDEX OF HEAP ARRAY
};
C++文件:
tripe::tripe()
{
for (int i = 0; i < 100; i++)
{
heap[i] = NULL;
}
heap[1]->score = -1; //SEG FAULT
}
其实我注意到,每当尝试访问我的堆阵列比分变量,我会毫无例外地获得一场瘫痪。我的构造函数是否需要做其他事情?任何有关这个问题的帮助将不胜感激!
P.S.我需要为这个项目使用一个节点数组,所以我的堆的实现不能改变。
啊,非常感谢你!我仍然是一个用节点和指针工作的noob,所以我无法弄清楚我的生活。我已经改变了声明,把 - >的改成了。这一切都起作用。再次感谢! – 2013-02-17 20:08:06
很好用,祝你好运! – 2013-02-18 00:13:17