私はファイルから数えるプロジェクトを持っています。それは学校のプロジェクトなので、私はほとんどのライブラリを使うのではなく、基本的なものを使うことが許されています。したがって、私はハッシュマップを使用することに決めました。私のリンクリストはnullポインタの例外を与えます。正確には "例外がスローされました:読み取りアクセス違反 このは0xCCCCCCCCでした"。私は解決策を見つけるために多くを検索したが、何も見つかりませんでした。あなたの時間をありがとう。ここでリンクリストnullポインタエラー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