Ⅰ c語言編程runtime error怎麼解決
修正兩個錯誤即可:
1、fun函數裡面兩個for循環控制變數有問題,應改為下面這種形式:
for(i=0;i<2;i++)
for(j=0;j<M;j++)
{
if(a[i][j]>max)
max=a[i][j];
}
2、輸出的時候也有問題,fun函數返回值是int,所以應該是:
printf(" The value of function is:%d ",fun(arr));
Runtime Error錯誤解析
1、buffer overflow
緩沖區溢出,緩沖區溢出一般就是你的程序中數組開小了,產生了越界訪問,比如:定義int a[100]
此時你引用了a[1000]就很可能出現運行時錯誤。「緩沖區」一般指的就是程序中定義的一個數組,這片連續的內存空間用以存放一些要處理的數據。
值得一提的是緩沖區溢出漏洞就連成熟的程序員都有可能不小心忽視它導致巨大的損失,所以現在寫代碼一定要養成深思熟慮,考慮好每一個值的范圍,以防越界。之所以存在緩沖區溢出漏洞,一個主要的原因是C語言並不對數組下標進行界限檢查。
2、stack overflow棧溢出
棧這個東西在操作系統中通常用來維護一個函數的調用,C語言中在調用函數的時候會依懶一個「棧」這種數據結構的性質的內存。