我遇到以下代码行的段错误:
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/