这个程序哪里错了吗,一直都是已停止工作

img


运行后一直都这样,不知道哪里错了。就用了一个二维数组,还有while循环

C语言程序运行出现exe停止工作的原因是因为内存溢出和编译器错误。

第一种:内存溢出

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

第二种:编译器错误

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

举例说明:

1、除以零。

2、数组越界:int a[3]; a[10000000]=10。

3、指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+1000000)=10。

4、使用已经释放的空间:int * p; p=(int *)malloc(5 * sizeof(int));free(p); *p=10。

5、数组开得太大,超出了栈的范围,造成栈溢出:int a[100000000],没有开辟内存 List L=(List)malloc(sizeof(struct LNode))。runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。

我好像看到你的for循环的次数过多了。。。。应该是数组越界了

索引越界了
把所有的<=N全部改为<N