我這個line的動態一維陣列創建的時候就會出現例外:
0x756D4192 處(位于 map-project2.exe 中)有未經處理的例外: Microsoft C++ 例外: std::bad_array_new_length,位于記憶體位置 0x003FF7D8 處。
還求大佬解答一下
代碼如下:
#include<iostream>
#include<stack>
#include<fstream>
#include<string>
using namespace std;
class dot {
public:
double x;
double y;
};
class line {
public:
int num;
int type;
double height;
dot *dots = new dot [num];
};
int scale;
dot p1, p2;
line *allData;
int getnum() {
int Num=0;
ifstream fin("data.txt");
string t;
while (!fin.eof())
{
getline(fin, t);
if (t == "71012" || t == "71011")
Num++;
}
return Num;
}
void readfile() {
int lineNum;
lineNum=getnum();
allData = new line[lineNum];
string n;
ifstream fin("data.txt");
do{
getline(fin, n);
} while (n != "BEGIN");
fin >> scale;
fin >> p1.x;
fin >> p2.x;
fin >> p1.y;
fin >> p2.y;
for (int i = 0; i < lineNum; i++) {
fin >> allData[i].type;
fin >> allData[i].height;
fin >> allData[i].num;
for (int j = 0; j < allData[i]. num; j++) {
fin >> allData[i].dots[j].x;
fin >> allData[i].dots[j].y;
}
}
/*-------------------------*/
for (int i = 0; i < lineNum; i++) {
cout << allData[0].type << endl;
cout<< allData[0].num << endl;
for (int j = 0; j < allData[i].num; j++) {
cout << allData[i].dots[j].x << " " << allData[i].dots[j].y << endl;
}
}
}
int main() {
readfile();
}
uj5u.com熱心網友回復:
class line {public:
int num; //你這個num沒有賦值(初期化)
int type;
double height;
dot *dots = new dot [num]; //這個num是個垃圾數,所以可能不正確
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/90267.html
標籤:C++ 語言
上一篇:系統開發的一個問題求解
