當前位置:首頁 » 編程軟體 » 語言編譯通過怎麼報錯

語言編譯通過怎麼報錯

發布時間: 2022-08-04 11:24:24

c語言為什麼有時候編譯能過,運行卻出錯

棧溢出啊,還有佔位符格式什麼的,原因很多,編譯通過只是第一步

② 程序編譯通過,但是運行報錯

它說是 xsting 的 line 929 發生null exception.
那就是library錯了.
就算是起因於sgslv1寫錯, 那也是 xsting 太弱.
這叫做不robust. 可以寫信去 Microsoft 抱怨.

③ C語言習題求助,編譯通過,運行錯誤,高分求解

由於 C 語言本身的最大特點就是:其不僅是編程格式上非常地自由,而且在對其進行編譯時也是非常自由的(編譯器能夠放過去很多它認為不是問題的問題),但自由的同時也給程序員帶來了程序調試和運行上的困難。有些錯誤在編譯的時候是能夠發現的(例如:程序語法錯誤)、而有些錯誤在編譯程序的時候卻是不能夠被發現的,只有到了執行程序的時候,才會發現程序的運行結果錯誤。你可以參考我下面提供的類型,希望能夠對你有些幫助。
Warning 警告類型錯誤有很多種。例如:(1)、雖然定義了某個變數,但是沒有對其是否成功初始化就使用、(2)、把賦值符號的等於(=)寫成了邏輯相等(==),等等。
例如對於(1)而言:

#include <stdlib.h> /* malloc( ) 函數原型在此頭文件中定義 */
void main( )
{
char * p ;
p = (char *)malloc(10000)*sizeof(char) ; /* 為指針變數 p 動態分配內存 */
if( p == NULL ) /* 內存分配失敗,返回 NULL */
{ /* 該段代碼用於判斷是否為指針變數 p 成功分配到內存,是必不可少的 */
printf("Memory allocation failured !\n") ;

exit(1) ; /* 若內存分配失敗,退出應用程序,否則的話,嚴重的話,就有可能使系統崩潰!!! */

}
strcpy(p, "This is a test string") ; /* 內存分配成功,將字元串的內容復制到 p 中 */
}
例如:再對於(2)而言:
void main( )
{
int num ;

scanf("%d", &num) ;

if( num == 10 )

printf("You input number is: 10 !\n" ) ;

else

printf("You input number is not 10 !\n" ) ;

}
但是如果在這個程序中,把雙等號:== 誤寫成了:=,那麼該語句就變成了:if( num = 10 )
那麼該語句產生的效果就是:無論你在 scanf( ) 語句中輸入任何數字(任意的正數也好、負數也好),程序總是把 10 這個整數賦給變數 num,那麼其邏輯表達式的值總為 1,所以則該程序的運行結果總是:You input number is: 10。
像這樣的程序錯誤都屬於 Warning 錯誤,在編譯的時候是發現不了的,只有到運行程序的時候,才會發現程序的運行結果不正確。

④ C語言程序編譯成功了,為什麼連接還出錯

1 編譯階段,執行的是對單個文件的轉換,從源代碼轉換成二進制文件。
2 鏈接階段,將每個源文件轉成的二進制文件,及相關的系統庫文件共同打包生成可執行文件。
3 從定義上可以看出,鏈接階段,出現錯誤有兩種可能:
1) 函數中引用了不存在的函數。
2) 編譯環境有問題,導致ld出錯。

⑤ c語言程序編譯問題 急! 編譯通過,但運行報錯是怎麼回事

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
intmain(void)
{
doublem_grade;
inti;
i=0;
while(i==0)
{
printf("Pleaseenterthescores ",m_grade);
scanf("%lf",&m_grade);
if(m_grade>=0)
{
switch((int)(m_grade/10))
{
case10:
case9:
{
printf("yougetaA!");
break;
}
case8:
{
printf("yougetaB!");
break;
}
case7:
{
printf("yougetaC!");
break;
}
case6:
{
printf("yougetaD!");
break;
}
default:
{
printf("yougetaE!");
}
}
i=1;
}
else
{
printf("Invalidvalues!");
system("cls");
}
}
return0;
}

注意程序中第14行scanf裡面的m_grade前面我加了一個&

這個&是取地址運算符了 就是說把你當前輸入的值送到m_grade的內存中去

你不加&就意味著輸入的值沒有地方放 只有加了& 才知道m_grade的地址

⑥ C語言程序,編譯成功,但是運行時報錯

int main(){
int*a;
int i=0;
int n,k;
scanf("%d,%d",&n,&k); //變數用地址,注意格式控制,輸入時兩數間也要有逗號,如2,2
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
scanf("%d",&a[i]); //&a[i]
}
patition(a,a[0],4,a[n]);
free(a);
return 0;
}
//程序可能還有其他問題,能執行,但沒有輸出。

⑦ C語言程序編譯通過,運行時出現問題

這個很簡單,

scanf("%d",ages);

改為

scanf("%d",&ages);

就行了,scanf還是需要變數地址才行

熱點內容
生命密碼解讀走什麼 發布:2025-02-09 04:55:51 瀏覽:279
python常用正則表達式 發布:2025-02-09 04:42:53 瀏覽:178
機器人編程培訓哪家好 發布:2025-02-09 04:37:44 瀏覽:308
上海怎麼學習java 發布:2025-02-09 04:26:39 瀏覽:23
erp系統搭建備用伺服器 發布:2025-02-09 04:07:38 瀏覽:946
戴爾伺服器在bios怎麼配置管理ip 發布:2025-02-09 04:01:53 瀏覽:551
小魚易連雲存儲 發布:2025-02-09 03:59:47 瀏覽:92
正在限制訪問 發布:2025-02-09 03:47:17 瀏覽:904
架設資料庫 發布:2025-02-09 03:41:29 瀏覽:966
imacpro哪個配置最好 發布:2025-02-09 03:32:29 瀏覽:253