Я получаю ошибку сегментации, и я понятия не имею, почему я получаю это. Он читает в моем csv без проблем, но в конце его запуска я получаю ошибку сегментации. Я попытался использовать функцию отладки Codeblocks, и это не помогло. Может ли кто-нибудь указать мою ошибку.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void loadCSV(int G[][24]) {
ifstream csv;
string line;
csv.open("matrix.csv");
if (csv.is_open()){
int lineNum = 0;
while ( (getline (csv,line)) && (lineNum!=24)){
for (int pos = 0;pos<line.length();pos++){
if (line.at(pos) == ','){
continue;
}
//cout << line.at(pos);
if (line.at(pos) == '0'){
G[lineNum][pos] = 0;
cout << lineNum << "-" << pos << "\n";
}
else{
G[lineNum][pos] = 1;
cout << lineNum << "-" << pos << "\n";;
}
}
cout << endl;
lineNum++;
}
cout << lineNum<< endl;
csv.close();
}
else cout << "Unable to open file";
}
int main(){
int G[24][24];
loadCSV(G);
cout << G[0][1];
return 0;
}
Просто проверьте значение 'pos' и 'lineNum' перед присвоением значения G [lineNum] [pos]. Если какой-либо из них больше/равен 24, то это недействительно для выполнения задания.