Мне было любопытно, почему мой код вызывает следующее исключение: 0x0FE7DB1B (ucrtbased.dll) в file.exe: 0xC0000005: Место чтения нарушения доступа 0xFDFDFDED.
Моя конечная цель - создать 2d массив с числом индексов строк и количеством строк минус 6.
Я также хочу сохранить подстроку r в массиве строк с тем же количеством индексов, что и в myNodes.
#include <iostream>
#include <fstream>
#include "file.h"
#include <string>
#include <map>
using namespace std;
int main() {
int index = -1;
int** myNodes = new int*;
//char* nameNodes;
string line;
ifstream myfile("spp_N151_E192_R8_232.nodes.txt");
if (myfile.is_open())
{
while (myfile.good())
{
index += 1;
getline(myfile, line);
//genNode(&myNodes, index);
string r = line.substr(0, 200);
//nameNodes[index] = new string;
//nameNodes[index] = r;
//cout << "String is: " << r << endl;
}
myfile.close();
for (int i = 0; i < (index - 6); i++) {
myNodes[i] = new int[5];
genNode(&myNodes, i);
cout << "myNodes [" << i << "]" << myNodes[i] << endl;
}
cout << "Number of nodes: " << index << endl;
}
else cout << "Unable to open file";
//clean up
for (int i = 0; i < index; ++i) {
delete[] myNodes[i];
}
delete[] myNodes;
// delete[] nameNodes;
return 0;
}
void genNode(int **x[], int n){
/*Formating
[0] D
[1] I
[2] E
[3] x
[4] y
*/
(*x)[n][0] = NULL;
(*x)[n][1] = NULL;
(*x)[n][2] = NULL;
(*x)[n][3] = rand() % 1000 + 1; //random x coordinate between 0 and 1000
(*x)[n][4] = rand () % 1000 + 1; //random y coordinate between 0 and 1000
}