c++ - std::malloc 的奇怪段错误

标签 c++ segmentation-fault malloc

我遇到以下代码行的段错误:

char* addr = (char*)std::malloc(bytes);

运行 GDB 时,我看到 bytes 的值为 851984。据我所知,这应该没什么大不了的。在我的一生中,我看不出有什么问题。有人有什么建议吗?

实际的段错误是:

Program received signal SIGSEGV, Segmentation fault. 
0x00007ffff674dd75 in malloc_consolidate (av=0x7ffff6a87720) at malloc.c:4254

最佳答案

您的代码中较早的某个地方(很可能)存在一个问题,该问题正在破坏堆结构,导致 malloc 分配失败。您应该尝试使用内存错误检测工具,如 valgrind调试此问题。

关于c++ - std::malloc 的奇怪段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14228718/

相关文章:

c++ - SFML游戏无法在Windows上编译

c++ - 通过迭代打印 C++ Map

c++ - 模板类的复制构造函数

c - 我如何为 SIGSEGV 分配备用堆栈?

C++ 为调试目的创建 SIGSEGV

c - 分配结构指针数组?

c - free() 导致 SEG 故障 C

c++ - 将 char[][] 转换为 char**

c++ - 无法将字符串读入矩阵

c - 为使用 malloc 创建的二维数组赋值