GDB给我上面的错误WRT我的C ++程序。我没有使用任何记忆功能,包括新的和删除等。
我想了解此错误的“含义”。
答案 0 :(得分:1)
如果在gdb下运行您的程序,您应该能够打印出回溯并查看代码的哪个部分导致分段错误。 memmove()可以通过不同的系统调用间接调用。
答案 1 :(得分:1)
代码中的数组操作可能会作为对memmove
的调用进行优化:这可能是编译代码使用memmove
的原因,而源代码却没有。{/ p >
我认为您应该检查您是否没有超出界限访问阵列。
答案 2 :(得分:0)
memmove
尝试访问(读取或写入)不应触及的内存段。
原因可能是多方面的,但可能是指针损坏。用调试器,valgrind,检查堆栈跟踪等检查它......