为什么c++ std向量段在赋值或调整大小时会出错?
Why would the C++ std vector segfault on assignment or resize?
这是一个会产生分段错误的最小代码。
#include<vector>
int main() {
std::vector<double> a;
a.resize(10);
return 0;
}
显然这段代码没有任何问题。我在几个系统上运行它都没有问题,但是它在我的工作pc上产生了一个分段错误。
代码在运行openSUSE 11.1的系统上使用g++ file.cpp编译。我知道这是一个较旧的操作系统,但我不允许升级或重新安装。我唯一有权限的是zypper(安装和删除程序的命令行实用程序)。
我的假设是它与c++库有关。我试着重新安装所有我能想到的与gcc/g++和libstdc++相关的东西,但我仍然看到同样的问题。
有人见过这样的东西吗?什么好主意吗?
谢谢!
您在哪里构建和链接应用程序?用什么选择吗?如果要动态链接c++标准库,你可以很容易地遇到问题;c++标准库已经改变了几次,破坏了二进制兼容性,以及二进制兼容性可能受到的影响编译器选项。一般来说,你应该使用选项-static-libstdc++
时,以避免这样的问题。(注意,对于系统来说,不是也是一样的)
相关文章:
- 在容量内调整矢量大小时的性能影响
- 为什么在使用VK_PRESENT_MODE_FIFO_KHR呈现模式调整交换链图像大小时出现白色闪烁
- 通过拖动边框调整大小时不显示SDL_WINDOWEVENT_SIZE_CHANGED?
- 如何在调整列表视图大小时将标题宽度设置为等于其列表视图控件宽度
- 使用 Nvidia NPP 调整图像大小时未记录的大小调整错误
- 在使用 resizeEvent 调整窗口大小时调整 Qlabel 图像的大小
- 调整大小的大小时,会创建自定义的Windows边框边缘消失
- 如何在调整大小时更新WC_EDIT控制边距
- QQuickView窗口在调整鼠标大小时冻结
- 调整OpenCV Mat向量向量的大小时出乎意料的结果
- 调整动态数组大小时保留用户输入的值的问题
- 调整大小时如何在QGridLayout中排列项目
- 在DEBUG模式下调整字节字段大小时发生访问冲突
- 当我在QT上调整图像大小时,如何将重点放在小部件的中间点
- "std::vector"在调整大小时引发"bad allocation"异常
- 什么时候应该调整Direct3D 11后缓冲区的大小,以防止在调整大小时拉伸
- 滚动条缩略图跟踪长度 基于图像的水平适合调整窗口大小时出现问题
- 如何获得一个窗口,以便在调整C++大小时保留绘制的对象
- C++MFC按钮在窗口调整大小时消失
- 调整模板对象矢量大小时出错