C語言程式free出錯,C語言free的時候程式出錯

2022-05-09 15:52:08 字數 2254 閱讀 2887

1樓:匿名使用者

陣列越界了!釋放的記憶體區域無法訪問。。。

a = (int *)malloc(sizeof(int));申請的4個位元組的記憶體,也就是乙個整形值的空間,

但是後來的

if(m % i == 0)

a[j]將訪問到其他的記憶體區域,而這個記憶體區域不屬於你管轄的範圍!

2樓:倒霉熊

我不明白的是

a = (int *)malloc(sizeof(int));

這裡你就分配了乙個整型變數所佔用的空間。

而下面你卻放了多個整型變數a[j],那些空間怎麼來的??

3樓:匿名使用者

你只給指標a分配了乙個int型的空間,但賦值時卻會給a[1]賦值,應該是指標越界了。

我改了一下:

a = (int *)malloc(sizeof(int)*10);

一般情況下是不會越界了。看你輸入的數字大小。

4樓:

你在malloc中只分配了乙個int的空間,但是在後面訪問的時候a[j]肯定越界了。

5樓:匿名使用者

free((void *)a);

6樓:匿名使用者

a = (int *)malloc(sizeof(int)); 只分配了乙個整型的空間

a[j] = i; 迴圈裡訪問陣列應該就會越界

樓主先把這個bug改了再看看吧

c語言free的時候程式出錯

7樓:

這可能跟你的那幾個strncpy的使用方式有關。我查了一下這個函式的手冊,大致是這麼說。這個函式在源比size大時,copy size個字元,不包括null。

在源小於size時,向目標填充足夠的null,直至size指定的大小,這是標準c規定的。

這意味著你的呼叫點會造成多個緩衝區越界,因為它們都被追加了很多0.(我想你的幾個引數應該都不到100大小吧?)

試著用正確的方式改寫那部分再試試

任何時候都應該檢查目標緩衝區是否有足夠的空間容納size個位元組,當用memcpy或者strncpy這類函式時。

或空間是否不小於源緩衝區,當用strcpy這類自動檢查null結尾的函式時,還要算上copy會自動包含的null結尾。

c語言c-free軟體怎麼進行程式設計?我的程式是正確的,可是就是顯示有錯誤。求幫忙

8樓:匿名使用者

把**更改為:

#include

int main()

執行後,電腦蜂鳴會發出一聲「嘀」。

9樓:何方科技

c free只是乙個ide,你編譯器沒有配置好,肯定就不能用了

10樓:匿名使用者

改成int main,然後main函式末尾return 0;

11樓:夜丶無言以對

樓主把源**亮出來 我以前在win8上用過c-free沒問題的

求c語言大神 , free函式 出錯

12樓:

free(p); p=p->next;

還有這樣寫的嗎?p指向的結點已經釋放了,哪兒來的p->next?所以,問題不在free而在找不到p->next了。但根源是邏輯錯誤,可以改成這樣試試:

void myfree(node *head)}

c語言為什麼在cfree上是編譯錯誤?

13樓:全思菱印錦

void

main()

可能是這裡的問題,cfree不允許主函式返回值為空?

你試著改為main();或者int

main(),需要最後加一句return0;

14樓:檢白凝枚葉

我的cfree編譯通過,是不是你的版本問題啊?我的是專業版4.1的

電腦c語言程式:vc++、c-free5全線崩潰!vc是無論任何檔案都報錯無法執行,cfree是報

15樓:無知者就是無懼

檢查一下系統時間和日期。我原來遇到過一次,被病毒把日期調到了2023年,也是各種程式無法執行,各種報錯;改回來之後問題解決。你不妨一試

c語言程式執行出錯

沒有錯啊,我在我的電腦上執行了,是可以的。應該是你vc的問題 printf c n cstr1 2 printf c n cstr1 3 printf c n cstr1 4 s改為 c s要求對應引數是個指標,你應該只是想輸出乙個字元而以,用 c 要輸出字串也可以,用 s,cstr1 2 如果你用...

C語言程式出錯,C語言程式沒有錯,但為什麼總顯示乙個錯誤

這個 需要重寫。比如函式putin2中,宣告的a是char型字元,後面scanf中卻要讓它接收乙個姓名字串,這樣的錯誤說明 構思很混亂,不是略改一下就能解決的 putin2函式中 char a 應該為乙個字串改為char a 100 字串a應該與運動員名字比較,也就是a與結構體的name2欄位比較。...

C語言程式程式設計,如何編寫C語言程式

把你的思路想好,想要達到什麼樣的功能,思路清晰後就可以一個一個功能的去寫,出錯了不用急,想一下自己錯在什麼地方,好好的看一下 雖然這樣做會花很多 的時間,但是這樣做會提高自己的閱讀分 能力,啊?書上不是有麼 自己學著寫啊 10.include main printf n 如何編寫c語言程式?首先,你...