我正在尝试将输出打印为
func 1 ---------------1
func 2 -------2
func 1 ---------------1
func 2 -------2
不确定。
但是在程序执行一段时间后我得到segmentation fault core(dumped)
。
为什么我的 gcc 编译器显示这个错误?
#include<stdio.h>
int i=2;
int main(int argc, char *argv[]){
func1();
func2();
return 0;
}
void func1(){
printf("\n func 1 ---------------%d",i);
i=2;
func2();
}
void func2(){
printf("\nfunc 2 -------%d",i);
i=1;
func1();
}
最佳答案
编译器不会抛出段错误,您的程序会。
你的程序调用 func1()
和 func2()
无数次,导致它爆炸,因为堆栈大小将被超过(因此段错误将会发生)。
关于c - 运行一段时间后出现段错误(核心已转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46319326/