向量(字符):核心转储
Vector of vectors (char): core dumped
这可能是
一个愚蠢的问题,但我根本无法弄清楚为什么这会引发分段错误(核心转储):
#include <vector>
using namespace std;
vector< vector<char> > samplevct;
int main(void)
{
samplevct[0].push_back('a');
return 0;
}
有人可以解释为什么这不起作用吗?
我使用 g++,Fedora 20,如果这是一个重要的信息。提前致谢
您的向量为空,因此您无法访问samplevct[0]
.您需要使用至少一个元素填充向量。例如
#include <vector>
int main()
{
using std::vector;
vector< vector<char> > samplevct(1); // size 1 vector
samplevct[0].push_back('a'); // OK
return 0;
}
有关如何使用std::vector
的更多信息,请参阅此参考。
它是一个
空向量,所以samplevct[0]
不存在。修改它是未定义的行为 - 幸运的是,在您的情况下,它会以明显的方式崩溃。
相关文章:
- 如何找出GDB的SIGTRAP核心转储的根本原因
- C++映射分割错误(核心转储)
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 浮点异常(核心转储)#694457
- 分段错误(核心转储)但无法弄清楚
- 链接到libkcapi时没有核心转储
- 分段错误(核心转储) - 使用 SavedModel 的 Tensorflow C++ API 进行推断
- 在基数排序中,我得到 munmap_chunk():无效指针和中止(核心转储).为什么?
- C++指针无法在函数外部传递值和分段错误(核心转储)错误
- 合并排序:分段错误核心转储
- C++:分段错误(核心转储)
- 从 pybind11 构建导入模块时出现"分段错误(核心转储)"
- 如何使用 lldb 在曼扎罗中调试 lz4 文件格式的核心转储?
- qt C++命令行代码中的分段错误(核心转储)
- 从文件中读取的数据,但发生核心转储错误
- googletest:测试基类具有纯虚拟方法的派生类时的核心转储
- C++ atof - 分段错误(核心转储)
- Linux C 只禁止我的程序使用核心转储
- 为什么我的代码包含错误分段错误(核心转储)?