0

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

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
4

1 回答 1

4

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

于 2013-01-09T05:26:28.667 回答