在我的程序中,在某些时候,我做了一个scanf(" %d %d", &num1, &num2);
并且我不断得到一个 SegmentationFault。我不明白为什么......我的意思是,他们是int
。我不确定是否应该为他们分配内存。这是完整的代码。
typedef struct my_type{
int attr1;
bool attr2;
} my_type;
int main (int argc, char * const argv[]) {
int testCase, result, totalDom, numLines, num1, num2;
int aux_map_int = 0, linesScanned = 0;
bool firstTime;
scanf("%d\n %d %d", &testCase, &totalDom, &numLines);
printf("totalDom: %d; numLines: %d\n", totalDom, numLines);
std::map<int, std::vector<my_type> > my_map;
while(aux_map_int < testCase+1){
std::vector<my_type> my_vector;
firstTime=true;
while (linesScanned < numLines) {
std::cin>>num_dom>>num_next_dom; /** SEGFAULT **/
if(firstTime){
my_vector[0].attr1 = num1;
my_vector[0].attr2 = true;
firstTime=false;
}
my_vector[num1].attr1 = num2;
my_vector[num1].attr2 = false;
linesScanned++;
}
aux_map_int++;
my_map.insert(std::pair<int, std::vector<my_type> >(aux_map_int, my_vector));
}
}