The*_*vat 1 c++ vector segmentation-fault stdvector c++-standard-library
代码(简化版)
(部分)类定义:
struct foo {
std::vector<int> data;
foo(int a=0):data(a+1,0) {}
void resize(int a) {
data.resize(a+1,0);
}
}
Run Code Online (Sandbox Code Playgroud)
这a+1部分是因为我想要data1索引来简化一些操作.
在全球范围内:
int k;
foo bar;
Run Code Online (Sandbox Code Playgroud)
在main功能:
std::cin>>k;
bar.resize(k);
Run Code Online (Sandbox Code Playgroud)
稍后在main函数中,调用另一个成员函数(in foo)访问data,导致a segmentation fault(segsegv).
调试后,我发现data.size()返回0.这是非常意外的.
调试的很长的会议结束后,我感到非常有信心,这个问题是与resizeING,这应该不会造成任何问题(这是从标准库,毕竟!).
PS不要指责我将任何东西放在全球范围内或让公众可以访问集体成员.我不是在写任何"真正的"程序,因为我只是在参加编程比赛.
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |