我在一个简单的 C 程序中声明了两个变量(一个全局变量和另一个局部变量),除了两个具有不同大小数据的数组。strcpy()
在拨打电话之前,我使用例程导致缓冲区溢出return 0;
。我在终端屏幕上看到了分段错误错误。
我知道在收到此SIGSEGV
信号后,系统会获取进程内存的核心转储并终止该进程,但系统是否会清理(清零)堆栈/堆内存和其他部分(如 BSS 段、文本段等)?
我想,在进程的正常终止中,系统会清理(清零)内存,但我不太确定。
我正在使用Ubunutu 10.12
并gcc
运行该程序。