【发布时间】:2021-10-12 09:04:31
【问题描述】:
我正在尝试制作一个函数来验证括号问题,这个函数在我的机器上运行良好,但是当我调用 "heap-buffer-overflow"强>vector.pop_back()。代码如下:
int isValid(string s){
vector<char> st;
for(int i = 0; i < s.length(); i++){
if(s[i] == '(') st.push_back(s[i]);
else{
if(st.back() == '(') st.pop_back(); //this line triggered the error
else return 0;
}
}
return (st.size() == 0);
}
我已经通过将向量更改为字符串来解决这个问题,但我仍然想知道这是怎么发生的,任何解释吗?
【问题讨论】:
标签: c++ vector data-structures stack