2D 矢量中的 push_back() 在使用动态大小时出错
push_back() in a 2D vector faults when using a dynamic size
我正在尝试一些简单的事情。
std::vector<std::vector<int> > computeBuf;
std::vector<int> temp;
computeBuf.push_back(temp); // correct
computeBuf.push_back(std::vector<int> (10) ); // correct
int size = 10;
computeBuf.push_back(std::vector<int> (size) ); // correct
int dynsize = someClass.getValue();
computeBuf.push_back(std::vector<int> (dynsize) ); // fault !!!!!
导致程序崩溃的变量"dynSize"是什么?编译器似乎需要知道变量的大小。为什么会这样??(PS : someClass.getValue() 返回一个 int)
我又调试了一些,意识到 dynSize 是 -1。
这里调用的构造函数是 std::vector::vector( std::size_t )
,它需要一个无符号的数字。传递负值会导致尝试分配巨大的向量,这可能会导致立即终止。
相关文章:
- 使用 thread 类在 C++ 中构造线程的动态数组时出错
- 基于数组的列表 - 动态数组创建时出错
- 运行时动态加载库时出错"unresolved external symbol"
- 在 c++ 上创建动态数组时出错
- 尝试返回指向 Visual Studio 中的动态数组的指针时出错C++
- 创建动态 C++ 数组时出错
- 将字符串分配到动态数组位置时出错
- 删除动态分配的数组时出错
- 动态堆栈、编译时出错、dev编译器和g++
- 在从动态库加载的函数中使用OpenMP时出错
- 初始化动态分配的数组时出错
- 删除动态数组c++时出错
- 创建动态pthread_t时出错
- 堆损坏 使用动态数组进行气泡排序时出错
- 当动态分配数组的函数被多次调用时,malloc 出错
- 在我的主类中使用动态数组时出错
- 为二维数组动态分配内存时出错
- 链接动态库时出错.所以使用Lua
- 指向动态分配对象的指针向量:可能出错的地方
- 2D 矢量中的 push_back() 在使用动态大小时出错