導航:首頁 > 源碼編譯 > 編譯沒問題但運行出錯

編譯沒問題但運行出錯

發布時間:2022-05-19 22:12:31

1. 編譯沒問題,但運行時怎麼會出現錯誤呢

可能是指針越界,定義的數組不夠大,訪問了數組以外的數據。
比如定義了char a[10]; 而你的某個循環代碼訪問了a[20],或者a[-1]之類的。

2. 為什麼我寫的C語言程序編譯時沒錯,運行時有錯誤

樓主,你好!編譯沒有錯誤只能說明沒有語法錯誤,並不能說明代碼的邏輯沒有錯!因為編輯器主要是根據c語言的語法來檢查你的代碼有沒有錯!

3. 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函數未定義

4. C程序編譯時沒問題,為什麼運行出錯

int a,b; scanf("%d%d",&a,&b);//參數必須是指針(地址)才可以。 scanf()函數要求參數必須是指針類型,即將地址傳輸到其內,才可以讓a , b變數中獲取到數據。 如果你學過指針,你就會理解了。 C語言中函數的調用中,參數傳遞,只能傳遞數值。如果只是將數值傳遞過去(接收者是形參),在子函數中變化,形參的變化,不會影響到實參數據的內容。 C中,每定義一個變數,系統都會在內存中給其分配一個空間用來存儲數據。而這個空間的編號就是這個變數的地址。當我們將這個地址傳遞到子函數中,子函數在操作數據時,就會改變這個地址中的數據,這樣,實參的數據是會發生變化。 而你程序中,傳遞的是a b本身的值(可能是0,可能是1,可能是任意的數),scanf()將這兩個值當作地址去操作,因此會產生系統錯誤,導致程序運行停止。

5. 編譯沒問題,運行出錯,怎麼回事

編譯沒問題,運行出錯,怎麼回事
況會有很多種:
1,你按回車渲染的時候,不是有條紅線跑過去嗎? 當彈出錯誤後,你看那個紅線在哪個位置,可以是那裡有一幀出了問題,把那個位置切掉一幀切掉再渲染看看,我原來就是用這個辦法,切掉後,可以渲染過去,應該就是這個問題了,
如果是上面這個問題,那你下面就不用看了,相信你已經輸出來了。
2,看你導入的原文件:視頻,音頻圖片等有沒有什麼問題,
3,解碼器都是最新的嗎,
4,輸出的時候,設置的問題,你先輸個AVI試試,
5,都不行的話,一段一段地輸成AVI,最後再新建一個工程文件,把它們導進來,再輸出
6,新建一個工程文件,然後,把你現在的這個工程文件導進去,輸看看,行不行。。

目前想到的就是這些,希望你成功吧。。

8.我想我們會在一起的我覺得自己很幸福,我不再是一條孤獨流浪的魚,我有岸可度,岸的一端你在那。

6. C語言程序,編譯連接時都沒問題但運行時出錯了

一眼就能看出的錯誤
你的

char
*name[100];
只是指針,沒有分配內存,你把它做為二維數組用了
另外,字串數組不能只交換指針的
給你一個簡單的參考(固定5個字串,非函數調用)
#include
<stdio.h>
#include
<string.h>
int
main()
{
int
i,j;
char
str[5][200],temp[200];
printf("Please
inout
five
strings:\n");
for(i=0;i<5;i++)

scanf("%s",str[i]);
for(i=0;i<4;i++)

for(j=0;j<4-i;j++)

if
(strcmp(str[j],str[j+1])>0)

{

strcpy(temp,str[j]);

strcpy(str[j],str[j+1]);

strcpy(str[j+1],temp);

}
for(i=0;i<5;i++)

printf("%s\n",str[i]);
return
0;
}

7. c語言編譯沒錯誤,但是執行不了,一執行就出錯,這是為什麼呢

你這個就叫「編譯錯誤」,確切地說是「鏈接錯誤」,不叫「運行時出錯」。

8. 程序編譯時沒錯運行時有錯是怎麼回事

程序編譯沒有錯誤,只是表明語法檢查沒有問題了,但是程序的邏輯是否合理、運行是否正確,則不一定。很多情況都會導致這樣的問題,比方說數組越界,訪問非法指針等,你沒有給出源代碼,也沒有提供相關錯誤信息,所以到底是什麼原因,在這里也不好確定。如果程序不長的話,建議對程序進行調試,監測程序的運行狀態,這樣容易找出問題。

9. C語言編程時編譯沒有錯誤,運行時卻顯示有一個錯誤。為什麼

不沒有寫max函數的具體定義,在主函數中又要使用這個函數,系統找不到,自然就錯了。你把max函數的定義寫全了,就沒事了。

10. 這段C語言編譯沒問題,運行提示有錯誤,是什麼意思求助大神。。。

編譯沒問題是因為所有語法都符合規范,運行提示有問題是因為找不到主函數。你的main拼錯了。另外你的邏輯有問題,這樣根本判斷不出來是不是素數。

#include<stdio.h>
#include<stdbool.h>

boolisPrime(intn)
{
if(n<2)
returnfalse;
for(inti=2;i<=n/2;i++)
if(n%i==0)
returnfalse;
returntrue;
}

intmain(void)
{
intn;
scanf("%d",&n);
if(isPrime(n))
puts("Itisaprime.");
else
puts("It'snotaprime.");


return0;
}
閱讀全文

與編譯沒問題但運行出錯相關的資料

熱點內容
hadoop解壓縮 瀏覽:421
30歲程序員生計 瀏覽:472
蘋果iOS反編譯軟體 瀏覽:460
當一個體面的程序員是什麼體驗 瀏覽:291
聯想安裝哪個編譯器 瀏覽:446
蘋果手機如何創建app組 瀏覽:40
如何知道伺服器開通了什麼埠 瀏覽:34
動態ip地址由dhcp伺服器來分配 瀏覽:800
aes128加密c 瀏覽:396
成為插畫師pdf 瀏覽:325
奧特曼系列ol為什麼進不去伺服器 瀏覽:742
盛世伺服器怎麼開啟 瀏覽:87
編譯安卓源碼修改定位 瀏覽:200
加密上市是什麼意思 瀏覽:802
一年程序員面試 瀏覽:174
多個jpg合成pdf 瀏覽:929
pdf轉word是圖片 瀏覽:941
程序員看不懂怎麼辦 瀏覽:273
linux操作系統題 瀏覽:769
單片機無符號數加法 瀏覽:231