我有一個項目從一個文件計數。由於這是一個學校項目,我不能使用大多數的圖書館,但基本的圖書館。因此我決定使用哈希映射。但我的鏈表給出了一個空指針異常。準確地說是「異常拋出:讀取訪問衝突 這個是0xCCCCCCCC發生」。我搜索了很多找到解決方案,但我找不到任何東西。感謝您的時間。鏈接列表空指針錯誤C++
public: liste() {
head = NULL;
tail = NULL;
}
void createnode(string value) {
liste();
node* temp = new node;
temp->data = value;
temp->next = NULL;
if (head == NULL) { // get error here!!!!
head = temp;
tail = temp;
temp = NULL;
}
else {
tail->next = temp;
temp = tail;
}
}
int main()
{
struct site {
int count;
string name;
};
unsigned long int i=0;
unsigned int x=0;
ifstream theFile("access_log");
string word;
liste* table[100000];
site list[10];
while (theFile >> word) {
if (word.find(".")!=-1) {
if (word.find("H") == -1) {
x=(int)hashG(word);
if (x < 100000) {
table[x]->createnode(word);
}
}
}
}
for (int i = 0; i < 100000; i++) {
cout << table[i]->length() << " " << table[i]->getData() << endl;
}
return 0;
}
這是一個常規錯誤,指示您的程序觸發了一些未定義的行爲。這可能意味着你在某處有指針錯誤 - 寫入內存不應該。 (另外,你的程序不完整。) – metal
'liste * table [100000];'然後'table [x] - > createnode(word);'。你在哪裏分配/初始化'table [x]'? –
哦,我沒有意識到,我需要分配/初始化它。我看過的所有教程都沒有。 – Redout