代码(简化版)
(部分)类定义:
struct foo {
std::vector<int> data;
foo(int a=0):data(a+1,0) {}
void resize(int a) {
data.resize(a+1,0);
}
}
部分是因为a+1
我希望data
1-indexed 以简化一些操作。
在全球范围内:
int k;
foo bar;
在main
功能上:
std::cin>>k;
bar.resize(k);
稍后在main
函数中,调用另一个foo
访问 的成员函数 (in ) data
,导致segmentation fault
( segsegv
)。
经过调试,我发现data.size()
返回0。这是非常意外的。
经过很长时间的调试,我非常有信心问题出在resize
ing 上,应该不会造成任何问题(毕竟它来自标准库!)。
PS 不要指责我将任何东西放在全球范围内或向班级成员提供公共访问权限。我不是在写任何“真正的”程序,因为我只是在为编程比赛练习。