void BinaryTree::InitializeFromFile(string Filename){
ifstream inFile;
treenode* Freq[256];
inFile.open(Filename.c_str(), fstream::binary);
if(inFile.fail()){
cout<<"Error in opening file "<<Filename;
return;
}
for(int i=0;i<=255;i++){
Freq[i]->weight=0;
Freq[i]->data = '0'+i;
Freq[i]->LChild = NULL; Freq[i]->RChild=NULL; Freq[i]->Parent=NULL;
}
char c;
inFile.get(c);
while(!inFile.eof()){
Freq[c]->weight ++;
inFile.get(c);
}
}
Я получаю исключение нарушения доступа в цикле for. Даже когда я прокомментирую некоторые строки, это даст мне ошибку на следующей строке в этом цикле.System.AccessViolationException при инициализации массива
Редактировать: Также есть строка Freq[c]->weight ++;
Действительно ли? Можно ли перейти к определенной части массива на основе значения char?
* Facepalm * Спасибо, я удивлен, что забыл инициализировать его. Любой ответ на мое редактирование? – Azreal
Я прочитал однажды текст Дона Кнута, описывающий глупые ошибки, которые он совершил во время развития TeX; люди просто люди, все делают ошибки. О вашем редактировании: 'Freq [c] -> вес ++', кажется, отлично. – Vlad