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;
}