我是新来的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