㈠ c語言如何終止線程
有三種方式可以終止線程,具體調用函數依賴於使用的線程系統。
1 在線程入口函數中,調用return。 即退出線程入口函數,可以實現終止當前線程效果;
2 在線程執行的任意函數,調用當前線程退出函數,可以退出當前線程;
3 在任意位置,調用線程終止函數,並傳入要終止線程的標識符,即pid,可以實現終止對應線程效果。
㈡ 用C語言編寫的程序,運行到一半,自動關閉。
你這個程序莫名其秒,那麼多for做什麼?程序結構如此混亂。
出現那個紅叉提示說明存在錯誤,只不過不是語句錯誤,編譯器發現不了。
操作系統有個保護機制,不會允許你的程序造成破壞,終止了你的程序。
常見錯誤原因是:1.數組越界,試圖操作不可訪問的內存
2.指針變數沒有初始化,如int *p; *p=5;//錯誤,p沒有初始化,指向的地址不確定。
㈢ C語言指針作業中出現的自動關閉的錯誤
1 、 s[i]=getchar())<='\n' 改成 while ((s[i]=getchar())!='\n')
2 、 p=&s[0]; 最好改成 p = s;結果一樣,這樣好理解
3、你輸入的字元串不能超過20個字元,超過的話也會崩的.
㈣ C語言 為什麼程序總是自動關閉
for(i=2;i<=101;i++) 需要修改為 for(i=2;i<101;i++)
你用到下標101就越界了,改了就好了
㈤ C語言如何終止線程
調用ExitThread函數。
該函數將終止線程的運行,並導致操作系統清除該線程使用的所有操作系統資源。但是,C++資源(如C++類對象)將不被撤消。
(3) 調用TerminateThread函數。
TerminateThread 能撤消任何線程。線程的內核對象的使用計數也被遞減。TerminateThread函數是非同步運行的函數。如果要確切地知道該線程已經終止運行,必須調用WaitForSingleObject或者類似的函數。當使用返回或調用ExitThread的方法撤消線程時,該線程的內存堆棧也被撤消。但是,如果使用TerminateThread,那麼在擁有線程的進程終止運行之前,系統不撤消該線程的堆棧。
㈥ C語言編寫程序後,為什麼執行時自動關閉
出現這種情況與溢出造成的有關 ,可以設置斷點觀察下,在哪裡自動關閉。常見的容易溢出的原因是第一個是數組下標越界,第二個是除數為0當然還有其他的。
常見的原因因為程序沒有設置暫停,運行完了之後,就自動關閉。可以在程序最後加上getchar();或者 system(pause)。實現程序暫停的效果。
pause是cmd中的一個命令,通過system函數調用執行。這樣程序會在執行這個之後結束,換句話說就是按任意鍵退出,而不會直接退出。
(6)c語言線程中自動關閉擴展閱讀
圓周長的程序的源代碼如下
#include<stdio.h>
#define PI 3.14void main()
{
float r; //半徑
float c;//周長printf("請輸入半徑:");
scanf("%f",&r);
c = 2 * PI * r;
printf("圓的周長為:%f ", c);
}