1. C語言代碼運行問題,為什麼編譯通過,但是運行時直接結束,沒有輸入
請把最後兩行從main()中移出來:
typedef struct tree
{
int weight;
int parent;
int lchild;
int rchild;
}HTNode,*HuffmanTree;
//定義編碼
typedef struct code
{
int bit[MAX];
int start;
}HCNode,*HuffmanCode;
HTNode HT[MAX]; //移到這里
HCNode HC[MAX];
2. C語言里程序編譯無誤但運行會彈出程序已停止運行是為什麼
造成程序停止運行彈框出錯的可能原因如下:
內存溢出
內存溢出(out of memory)通俗理解就是內存不夠,程序所需要的內存遠遠超出了主機內安裝的內存所承受大小,就叫內存溢出。系統會提示內存溢出,有時候會自動關閉軟體,重啟電腦或者軟體後釋放掉一部分內存又可以正常運行該軟體
造成內存溢出的原因可能有:
1>棧區溢出,例如在main函數內開辟的數組空間過大,一般機器的棧區限制在8MB左右,如果開辟的數組大小超過限制,程序就會崩潰。通常的解決方法是申請堆內存,即將較大的數組作為全局變數開在main函數之外。
2>錯誤地址訪問,常見的非法訪問包括指針漂移,數組越界等,初學者也經常出現類似scanf函數沒加區地址符號&的情況導致在讀取變數的時候因非法訪問造成的溢出。
3>數據類型不符,問題和第二個類似,例如在聲明變數時聲明為int在輸出變數時卻用了%lld,就會造成因數據類型不符而導致的溢出。
編譯器錯誤
部分編譯器由於所使用的標准不同(例如在一台機器上使用的可能是C99標准,而另一台機器上使用的是C11標准),或是因為編譯器鏈接庫的損壞,在少數情況下也可能導致程序出現不限於崩潰退出的異常錯誤,通常解決方法是到編譯器官方網站下載最新版的IDE安裝。
3. 為什麼C語言編寫的程序運行時閃一下就沒了
C語言編寫的程序運行改橘時閃一下就旁殲悶沒了是設置錯誤造成的,解決方法為:
1、我們以最經典的HELLOWORLD程序為例。
4. 為什麼c語言程序出現了就馬上消失了
你沒有讓程序暫停,它一輸出後就結束了。
你可以這樣寫:
#include<stdio.h>
#include<stdlib.h>
main()
{
printf("abcdef");
printf(" ");
system("pause");
}
或者,不改,直接在cmd中運行