사용자가 입력 한 "gen"입력을 기반으로 많은 데이터 구조를 만들려고합니다.왜 seg 오류가 발생하는지 알고 싶습니다.
#include <iostream>
#include <algorithm>
#include <string>
#include <iomanip>
#include <limits>
#include <stdio.h>
#include <sstream>
using namespace std;
using std::stringstream;
struct rootset {
double totSize;
const char *rStrtPtr;
const char *rEndPtr;
struct generations {
double totSize;
const char *genStrtPtr;
const char *genEndPtr;
int numOfGen;
string genName;
struct object {
double objSize;
const char *objStrtPtr;
const char *objEndPtr;
string id;
char markBit;
char objPtr;
struct freeList {
double freeSpace;
int flNumb;
};
};
};
};
int main()
{
int gen =0;
cin >> gen;
cin >> pmemSize;
vector<rootset> pRootSet;
pRootSet.push_back(rootset());
pRootSet[0].totSize = pmemSize;
vector <rootset::generations> generation;
generation.push_back(rootset::generations());
for(i=0; i<gen; i++) {
stringstream out;
out << i;
string s = out.str();
generation[i].genName = "generation" + s
cout<<"gen name: "<<generation[i].genName<<endl;
}
}
이 코드는 인쇄입니다 :
3
50
gen name: generation0
Segmentation fault (core dumped)
하지만 내 출력에 내가 그것을 만들려 : 나에 어떤 문제가 있는지 알려
gen name: generation0
gen name: generation1
gen name: generation2
gen name: generation3
마십시오 여기에 코드입니다 내 코드
전체 프로그램을 게시하십시오. 나는'pRootSet'의 타입을 보지 못합니다. ('std :: vector'이라고 가정하십시오.)'generation [i]'가 유효한 색인인지 확인하십시오. –
Mahesh
디버거를 사용해보십시오. 그러면 seg 오류가 발생하는 장소에 대해 조금 더 알려 드리겠습니다. –
made 내 편집. 미안 대해 – Tuffy