与std :: malloc奇怪的段错误

时间:2013-01-09 05:19:09

标签: 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

1 个答案:

答案 0 :(得分:4)

在您的代码中某处(很可能)存在一个问题,即破坏堆结构,导致malloc在分配时失败。您应该尝试使用像valgrind这样的内存错误检测工具来调试此问题。