C语言编程的时候出现“程序已停止工作”的原因有哪些?

如题所述

最常见的原因:程序发生了空指针调用。
如果你刚入门,请检查:
scanf("%d",&i); 有没有加上“&”号,scanf必须在变量前加“&”(取地址符)。
如果没有加&, scanf会把变量当作地址来用,而你的程序中又没有以变量为地址的变量,操作系统不允许程序读写程序规定范围以外的空间。出于安全起见,操作系统将其紧急中止。就发生了“***.exe已停止工作”的效果。
如果你正在学习数组,请检查:
数组是否越界。定义为int a[10]的数组,如果写a[10]=0; 相当于对a数组里的第11个元素赋值。事实上,a数组里并没有第11个元素。如果该元素的位置指向一个程序以外的内存,操作系统同样会果断将其终止。
如果你正在学习指针,请检查:
指针是否赋值;
在给指针赋值时,有没有在非指针变量前加取地址符“&”;
int * p = &i; //正确!
int * p = i; //错误!
这与在sccanf里没有加上“&”号的原因大致相同。
指针问题属于程序逻辑错误,很多时侯编译器只会给你一个警告。要注意警告发生的位置自己是否有把握。如果你多次编译或忽视编译警告而进行链接,编译器会认为你对这些警告是有把握的,完全地信任了你,也就没有警告了。
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言中一般运行后停止工作有哪些情况
只要编译通过,一般情况下C语言程序停止工作,多为输入输出格式不对,或计算陷入死循环。1、输入输出格式不对。最常见的就是&符号,该有的没有,不该有的打了&符号。例如:int n;scanf("%d",n);n前少打了&符号。编译能通过,执行时就会出现停止工作的情况。2、个别计算陷入死循环的情况,例如:i...

c语言exe已停止工作怎么解决
这可能涉及到错误消息、错误代码或程序的行为。在C语言中,一些常见的问题源包括:1. 语法错误:检查代码中是否有明显的语法错误,例如丢失的分号、括号不匹配、不正确的变量声明等。2. 内存管理问题:确保你没有尝试访问已经释放的内存,或者分配了过多的内存但未释放。3. 函数调用问题:确保所有的函数...

C语言编程的时候出现“程序已停止工作”的原因有哪些?
最常见的原因:程序发生了空指针调用。\\x0d\\x0a如果你刚入门,请检查:\\x0d\\x0ascanf("%d",&i); 有没有加上“&”号,scanf必须在变量前加“&”(取地址符)。\\x0d\\x0a如果没有加&, scanf会把变量当作地址来用,而你的程序中又没有以变量为地址的变量,操作系统不允许程序读写程序规定...

C语言编程的时候出现“程序已停止工作”的原因有哪些?
最常见的原因:程序发生了空指针调用。如果你刚入门,请检查:scanf("%d",&i); 有没有加上“&”号,scanf必须在变量前加“&”(取地址符)。如果没有加&, scanf会把变量当作地址来用,而你的程序中又没有以变量为地址的变量,操作系统不允许程序读写程序规定范围以外的空间。出于安全起见,操作系...

C程序为什么会崩溃?
C语言程序运行出现exe停止工作的原因是因为内存溢出和编译器错误。第一种:内存溢出 内存溢出(out of memory)通俗理解就是内存不够,程序所需要的内存远远超出了主机内安装的内存所承受大小,就叫内存溢出。系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该...

c语言编程停止工作
因为你的循环是一个死循环,电脑内存耗不起,当然停止工作了

在运行C语言程序时为什么就提示程序已停止工作?
而你程序中,传递的是a b本身的值(可能是0,可能是1,可能是任意的数),scanf()将这两个值当作地址去操作,因此会产生系统错误,导致程序运行停止。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言...

求助大神为什么我用c语言编写的程序运行的时候显示程序停止工作?
scanf语句和printf语句都有错误。正确的代码如下:scanf("%lf",&fRadius);printf("圆的面积为: %lf\\n",fResult);是%lf,而不是%If,scanf语句中,,&fRadius在""后面,而不是在""里面。

为什么我的C语言程序会出现 程序已经停止工作呢?程序如下
这种情况叫做 runtime error (运行时错误)。在 windows 7 上这样提示:在 windows xp 上这样提示:runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。比如说:①除以零 ②数组越界:int a[3]; a[10000000]=10;③指针越界:int * p; p=(int *)malloc(5 * sizeof(int));...

C语言编好的程序停止工作
程序停止响应,是因为你的内存出现非法读写操作 请检查你的代码所有关于内存读写的地方 不能用下标 10 读取数组 x1 的内容,这样子会导致数组上标越界 你只能使用 0 - 9 来读取数组 x1 的内容

相似回答