Я получаю ошибку сегментации при запуске моей программы, программа компилируется с помощью g ++ с использованием тега -g.Затем я использовал gdb для отладки программы:
извлечение исходного кода (clinicFunctions.cpp):
void loadTreatments(string &file, string treatments[20], int &treatmentsCount){
cout << "---LOADING TREATMENTS---" << endl;
ifstream reader(file.c_str());
int lineCounter = 1;
if(!reader){
cerr << "**Error opening file: " << file << "**" << endl;
}
while (reader){
string line; //LINE 299, ERROR OCCURS HERE
int stringLength;
size_t location;
char extraction[20];
size_t length;
string treatment;
getline(reader, line);
stringLength = line.length();
location = line.find(".");
gdb result:
Program received signal SIGSEGV, Segmentation fault.
0x77923654 in ?? ()
(gdb) backtrace
#0 0x77923654 in ?? ()
#1 0x775e70b5 in msvcrt!free () from C:\windows\SysWOW64\msvcrt.dll
#2 0x00990000 in ?? ()
#3 0x6fe5a624 in ?? () from C:\MinGW\bin\libstdc++-6.dll
#4 0x6fec971f in ?? () from C:\MinGW\bin\libstdc++-6.dll
#5 0x6fed6353 in ?? () from C:\MinGW\bin\libstdc++-6.dll
#6 0x6fed63a1 in ?? () from C:\MinGW\bin\libstdc++-6.dll
#7 0x6feda29b in ?? () from C:\MinGW\bin\libstdc++-6.dll
#8 0x00402fb1 in _fu22___ZSt4cerr () at clinicFunctions.cpp:299
#9 0x00401643 in main (argc=5, argv=0x990ea0) at clinic.cpp:48
Эта ошибка возникает втретья петля while (reader)