我是新來的C++編程,這可能是一個微不足道的問題,但我需要在一個類中構造一個可變大小的數組,並將文本文件數據傳輸到它,見下文。這裏HISTORYFile >> ClusterCoord[i];
似乎採取的信息很好,但是當我試圖讓通過訪問信息在主程序中,在類中初始化一個動態存儲器陣列
cout << CoordClassExample.ClusterCoord[1] << "\n";
我得到一個總線錯誤。如果可以的話請幫忙!
class CoordClass{
public:
int Entries;
double * ClusterCoord;
void set_valuesCoord(ifstream &HISTORYFile,int MolAtomNum, int MolNum);
};
void CoordClass::set_valuesCoord(ifstream& HISTORYFile,int MolAtomNum, int MolNum) {
Entries=MolAtomNum*MolNum;
double *ClusterCoord = new double [Entries];
for (int i=0;i<Entries;i++) {
HISTORYFile.ignore(1000,'\n');
HISTORYFile >> ClusterCoord[i];
cout << ClusterCoord[i] << "\n";
HISTORYFile.ignore(1000,'\n');
}
}
如果你是新的C++,請[收拾好C++的書(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)並通讀它。你應該使用'std :: vector'而不是原始數組;我已經可以在'set_valuesCoord()'函數中看到內存泄漏。 –
2010-12-14 18:17:29
你的代碼有很多錯誤。請參考書籍鏈接@In silico給你。 – 2010-12-14 18:19:14
是的,也許我應該試着重新編寫一個我在飛行中用fortran編寫的程序。即使你可以給我什麼搜索,這將是有益的。也許突出內存泄漏線。 – 2010-12-14 18:24:03