3D 벡터 작업을하고 있었는데 모든 것이 완벽하게 작동했습니다. 내가 ofstream 파일을 추가하고 작업했을 때 Segmentation Fault가 나타났습니다. 나는이 문제를 전혀 이해하지 못한다. 다음 코드는 작동하지 않습니다C++ 세그먼트 작업 오류시 <vector> 및 <fstream>
#include <iostream>
#include <vector>
#include <fstream>
std::vector < std::vector < std::vector <float> > > hand;
int main(){
//First Part
std::ofstream file;
file.open("test.csv");
file << "Hello World!";
file.close();
//Second Part
hand.reserve(20);
for (int i=0; i<hand.capacity(); i++){
hand[i].reserve(4);
}
return 0;
}
당신이 코드가 완벽하게 작동 부품 중 하나를 언급합니다. Segmentation 오류는 동시에 작업하려고 할 때 나타납니다.
hand.reserve(20);
우리가 8 이하의 번호를 사용 :
hand.reserve(7); //or lower
내 질문은 왜 코드가 작동하지
대신의 경우 코드가 작동 할 수 있음을주의하는 것도 중요하다 내가 그들을 동시에 사용할 때? 문제를 해결하려면 어떻게해야합니까? 이 사건에 대한 설명이 있습니까?
이 코드를 훨씬 더 큰 코드로 구현해야하므로, 근본 원인을 알고 다음 번에이를 피하는 것이 좋습니다.
이 응용 프로그램을 디버깅 할 수 있습니다 및 0 값을보고하는
resize(20)
를 사용해야합니까? –