dev c++ 中的Program received signal SIGSEGV Segmentation fault

在编写程序的时候程序不能正确输出结果或者程序无法运行
在debug的时候系统提示
在这里插入图片描述
系统提示报错Segmentation fault

从字面上理解
SIGSEGV是是当一个进程执行了一个无效的内存引用,或发生段错误时发送给它的信号。
所以这段话的意思是程序接受一个无效的指针地址,Segmentation fault即是提示我们去注意定义指针的符号。

举个简单的例子

int m;
scanf("%d",m);
int m;
scanf("%d",&m);

这就是一个常见的错误情况
第一个scanf由于缺少指针标识符&导致系统无法访问变量m所对应的地址导致报错
因为scanf本身是不能直接获得变量的值,而是要去访问对应变量 的指针地址而导致系统未能访问到正确的指针地址

那么同理,如果系统报出这种错误
请仔细检查程序中所有运用指针的地方

如果程序中运用了 数组
因为数组也是开辟内存空间 所以也要注意错误

总结一下:Program received signal SIGSEGV Segmentation fault
的错误原因是无法访问的内存
发生的常见原因 是 数组或者指针的原因(数组和指针都是去访问内存)

猜你喜欢

转载自blog.csdn.net/Karthus77/article/details/109441856