我试图获得指向vector(vector mytype*)
mytype的指针,但我得到了段错误。
我有以下代码:
void add(string b, vector<mytype*> *p){
int a;
mytype *fre=NULL;
a=oura.front();
oura.pop();
if(!(p->size()<a) && oura.size()>0){
fre=p->at(a-1); //Error seems to come from here
add(b,fre->get_vec());
}
else{ ...}
}
mytype
是一个带有string
和vector<mytype*>
指针的课程。
错误似乎来自fre=p->at(a-1)
oura
是queue<int>
,取值介于1-20之间,因此我使用了(a-1)。
答案 0 :(得分:2)
at
在访问元素时会进行边界检查。如果它超出范围,它将抛出std::out_of_range
例外。
添加assert(a > 0);
应该可以让您知道它何时发生。