当前位置:首页 » 编程语言 » c语言编译不报错但运行时报错
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编译不报错但运行时报错

发布时间: 2023-05-29 06:12:53

c语言编译没错,运行报错是怎么回事啊

extern int max, min;这一句有问题
改成 int max, min;
因为extern是引用外部文件中的变量,他表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中逗拆寻找其定义。但是,你没有相应的外部文件,直接在本文瞎指陵件中用变量磨戚的话不用extern。

Ⅱ 为什么我写的C语言程序编译时没错,运行时有错误

楼主,你好!编译没有错误只能说明没有语法错误,并不能说明代码的逻辑没有错!因为编辑器主要是根据c语言的语法来检查你的代码有没有错!

Ⅲ 为什么C语言程序编译正确但不能执行

  • 因为你的c没有初值,while循环无法进行。另外你的算法也有问题,while循环可改为while(m%n!=0),循环结束后最小公约数时n。

Ⅳ C语言里程序编译无误但运行会弹出程序已停止运行是为什么

造成程序停止运行弹框出错的可能原因如下:

  1. 内存溢出

    内存溢出(out of memory)通俗理解就是内存不够,程序所需要的内存远远超出了主机内安装的内存所承受大小,就叫内存溢出。系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件

    造成内存溢出的原因可能有:

    1>栈区溢出,例如在main函数内开辟的数组空间过大,一般机器的栈区限制在8MB左右,如果开辟的数组大小超过限制,程序就会崩溃。通常的解决方法是申请堆内存,即将较大的数组作为全局变量开在main函数之外。

    2>错误地址访问,常见的非法访问包括指针漂移,数组越界等,初学者也经常出现类似scanf函数没加区地址符号&的情况导致在读取变量的时候因非法访问造成的溢出。

    3>数据类型不符,问题和第二个类似,例如在声明变量时声明为int在输出变量时却用了%lld,就会造成因数据类型不符而导致的溢出。

  2. 编译器错误

    部分编译器由于所使用的标准不同(例如在一台机器上使用的可能是C99标准,而另一台机器上使用的是C11标准),或是因为编译器链接库的损坏,在少数情况下也可能导致程序出现不限于崩溃退出的异常错误,通常解决方法是到编译器官方网站下载最新版的IDE安装。


Ⅳ C语言编程时编译没有错误,运行时却显示有一个错误。为什么

不没有写max函数的具体仿山定义,在主函数中又要使用这个函数,系统侍大源找不到,自然就错了。你把max函数的老态定义写全了,就没事了。