c語言程序編譯沒問題
這當然原因非常多,比如:編譯器編譯不夠嚴格、程序有很大的風險等等,最簡單的一個例子如下:
inta;
scanf("%d",a);
可以確定的一點是:一旦在運行中出現錯誤,大多是較為嚴重的錯誤,須引起重視,否則,一旦錯誤非常嚴重,必會導致許多嚴重的後果,如死機、卡屏甚至直接導致藍屏。
② c語言程序編譯時沒錯誤,組建時為什麼出現錯誤
你說的組建錯誤多半是link出錯吧,這個很可能是你安裝的路徑不是默認那個路徑,於是,可能需要你自己修改一下
編譯器
設置,你可以到網上搜一下到底是在什麼地方設置。我記不清楚具體位置了,就是設置
鏈接器
的路徑。在對vc進行設置的那個菜單裡面
找一找
,裡面就有各種路徑設置,包括
頭文件
路徑啊,可執行文件路徑之類的,就在裡面設置到vc下面的bin路徑就可以了。
③ C語言程序,編譯沒有錯誤,執行時出錯。問題在哪
#include<stdio.h>
intmax(inta,intb);
intmain(void)
{
inta,b,c;
scanf("%d%d",&a,&b);
c=max(a,b);
printf("maxis%d ",c);
return0;
}
intmax(inta,intb)
{
returna>b?a:b;
}
max函數未定義
④ c語言有時候為什麼在編譯顯示沒錯誤,鏈接卻顯示有錯誤
估計是重定義一類的問題吧。。。當然也有可能編譯器與系統不兼容。
具體的話得看程序頭表符號重定位這些東西是不是出了問題。。
最直接的方法是閱讀代碼。。看代碼是不是哪裡出了問題,比如重定義,比如多個強符號。。
這里只有猜。。需要源代碼。。以及說明用來編譯鏈接工具。
⑤ C語言里程序編譯無誤但運行會彈出程序已停止運行是為什麼
造成程序停止運行彈框出錯的可能原因如下:
內存溢出
內存溢出(out of memory)通俗理解就是內存不夠,程序所需要的內存遠遠超出了主機內安裝的內存所承受大小,就叫內存溢出。系統會提示內存溢出,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分內存又可以正常運行該軟體
造成內存溢出的原因可能有:
1>棧區溢出,例如在main函數內開辟的數組空間過大,一般機器的棧區限制在8MB左右,如果開辟的數組大小超過限制,程序就會崩潰。通常的解決方法是申請堆內存,即將較大的數組作為全局變數開在main函數之外。
2>錯誤地址訪問,常見的非法訪問包括指針漂移,數組越界等,初學者也經常出現類似scanf函數沒加區地址符號&的情況導致在讀取變數的時候因非法訪問造成的溢出。
3>數據類型不符,問題和第二個類似,例如在聲明變數時聲明為int在輸出變數時卻用了%lld,就會造成因數據類型不符而導致的溢出。
編譯器錯誤
部分編譯器由於所使用的標准不同(例如在一台機器上使用的可能是C99標准,而另一台機器上使用的是C11標准),或是因為編譯器鏈接庫的損壞,在少數情況下也可能導致程序出現不限於崩潰退出的異常錯誤,通常解決方法是到編譯器官方網站下載最新版的IDE安裝。
⑥ 編譯的C語言程序沒有錯誤就是運行不了怎麼回事
編譯上只是在語法上沒有錯誤
但是運行的時候不符合邏輯等等的就會出錯
就比如樓上說的那種
⑦ 為什麼C語言程序編譯正確但不能執行
這哪是編譯正確,這是有一個語法錯誤的意思,這樣的程序是無法運行的。
最後一句的語法錯了
應該是printf("%4d
%d\n",i,slect[i]);
雙引號中間是格式控制字元串,用於控制輸出的字元串以及變數的格式,
變數需要放在雙引號外頭,用逗號分隔。
⑧ 為什麼C語言程序編譯正確但不能執行
因為你的c沒有初值,while循環無法進行。另外你的演算法也有問題,while循環可改為while(m%n!=0),循環結束後最小公約數時n。
