1. c語言編程時編譯組建都沒問題但是運行崩潰了
你的參數傳遞的不對,max和min已經是指針了,在加上*號就不是指針了。調用fun函數的時候直接傳max和min就行,不用帶*號。使用&符號傳遞時雖然滿足了類型的要求,但是實際是對指針再次取地址了,參數內容也不對。
2. C語言編程出現運行錯誤,為什麼,應該怎麼改
刪除第18行
把第17行改成: int t=0,b=0,i;
第15行的*p改成*a
第12行的*p改成a
刪除第7行
3. c語言字元串編程,為什麼這個程序運行會崩潰
char word[]=""是聲明了一個長度為1的char類型數組,而在調用scanf函數的時候自然會溢出崩潰。
我寫了一個程序應該能有
#include <stdio.h>
int main()
{
char ch; //每次讀取字元的buffer
int count = 0; //單詞長度
while(1)
{
scanf("%c", &ch); //讀取字元
if(ch == '.')
{
//如果讀取的字元為『.』則列印出最後一個單詞的長度並跳出循環結束程序
printf("\t:%d\n", count);
break;
} else
{
if(ch == ' ')
{
//如果讀取的字元為『 』則列印出當前單詞的長度,並歸零count
printf("\t:%d\n", count);
count = 0;
} else
{
//如果讀取的字元為其他符號則列印出當前符號,並將單詞長度+1
printf("%c", ch);
count ++;
}
}
}
return 0;
}
4. 用tc運行c語言程序時死機了怎麼辦怎麼調試
是編譯時死機還是運行時?
如果是運行時死機,請查看你的循環語句是否有問題,死循環了。
還有一種可能,指針對象沒有free掉,造成內存溢出。
5. 如何解決編程C語言運行後軟體突然卡死的現象
突然卡死而不是崩潰.
說明代碼中存在死循環或者死鎖(多線程), 或者是某個操作耗時太多而導致的偽卡死.
可以開啟調試模式,單步跟蹤, 檢查卡死在哪步中.
然後再針對修改.
6. C語言 程序運行到一半告訴我出現一個問題導致程序停止工作
有點兒意思。原因卻出乎意料的簡單。
char *rwtab[27]={"main","if","then","while","do"," static","int",
" double","struct","break","else","long","switch","case",
"typedef","char","return","const","float","short","continue",
"for","void","sizeof","default","do"};
少了一項,只有26項,rwtab[26]是空指針,訪問到它時,就出錯了。錯誤提示如下:
我沒有修改這一句的時候,在你指出出錯的地方加了下面一句:
for(n=0;n<27;n++)
if(strcmp(token,rwtab[n])==0)//比較是否關鍵字
{
printf("Cathch a key-word
"); //
}
出錯了,提示信息如下:
我用你的程序做a.txt,生成文件b.txt,c.txt,今天不知什麼情況,不能上傳。
為什麼這樣?很玄妙:
rwtab數組少一項,rwtab[26]會引用一個空指針,產生錯誤。這兒沒有語句時,循環沒有實質性語句,編譯程序優化, 不會編譯這個循環的語句,程序中根本沒有這幾句的內容,因而不會出錯。有了語句,就不能省略了,就出錯了。
就是這樣簡單。
另外,你的程序必須當做C++程序編譯,否則通不過。C不允許在有實質語句之後定義變數,變數說明要全部放到相應段的最前面,也不支持//注釋。我是用DEVC++編譯成功的,用WINTC編譯失敗。
7. c語言運行錯誤
c1跟c2都是單個字元,但是你在輸入的時候,用的是scanf輸出,中間用空格鍵隔開的,而空格也是一個字元,因此在輸入y以後,你再次輸入的空格被c1存儲,即相當於c1c2原來的存儲量前移,所以導致c1無輸出,c2取代c1的值