저는 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()'함수에서 메모리 누수를 이미 볼 수있다. –
코드에 많은 문제가 있습니다. @In silico가 준 책 링크를 참조하십시오. –
그래, 아마 내가 비행 중 포트란에서 쓴 프로그램을 다시 만들려고 노력해야한다. 당신이 나에게 무엇을 검색 할 지 알려주지 만 도움이 될 것입니다. 그리고 메모리 누수 라인을 강조 표시하십시오. –