«В вашей программе обнаружено нарушение доступа (ошибка сегментации)». - PullRequest
1 голос
/ 01 января 2011

Моя программа на C ++ компилируется и работает до тех пор, пока я не вызову эту функцию из main ():

int uword(){fstream infile("numbers.txt");
fstream exfile("wordlist.txt");
string numb[numoflines];
string lines[numoflines];  
number = 1; 
line = 1;  
for(int i=0;i<numofline;++i)
    {
    getline (infile,number);
    numb[i] = number; //I think this is causing the problem
    getline (exfile,line);
    lines[i] = line; //This too
    }
infile.close();
exfile.close();    
string yourword;

Что-то здесь приводит к сбою, в отладке появляется сообщение «Нарушение доступа (Ошибка сегментации)) в вашей программе. "

РЕДАКТИРОВАТЬ: Моя ошибка заключалась в использовании! infile.eof в цикле for.

Ответы [ 2 ]

3 голосов
/ 01 января 2011

Не прямой ответ, но я считаю, что он хороший ...

Использование Отладчик! GDB должен приостановиться на точную строку , когда происходит ошибка сегментации, что дает вам очень хороший совет о том, что это за ошибка.

1 голос
/ 01 января 2011

Функция getline работает не так, как вы думаете.

Кроме того, в infile.

может быть более numoflines строк.
...