我正在做一个项目,我正在尝试将节点数组构建为堆,以便在数组的每个索引中,我可以存储名称和值。本质上,我希望我的构造函数将第一个索引的值设置为 -1,以便稍后我可以判断它是否为空(-1 的值表示空索引)。
问题是我遇到了段错误,我不知道为什么。这是错误的代码:
头文件:
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
}
事实上,我注意到,每当尝试访问堆数组中的 score 变量时,我都会得到一个 segault。我的构造函数需要做其他事情吗?对此问题的任何帮助将不胜感激!
PS 我需要为这个项目使用一个节点数组,所以我的堆的实现不能改变。