簡體   English   中英

Ubuntu在代碼塊中的錯誤?

[英]error in ubuntu work in codeblocks?

我想知道為什么在ubuntu中編譯我的代碼時出現此消息

    $*** glibc detected *** ./a.out: malloc(): memory corruption: 0x00000000024dd190 ***        

但是相同的代碼可以正常工作,但在code :: blocks中沒有任何錯誤,並為我提供了正確的結果? 我需要您的幫助來解決此錯誤。

我試圖更新編譯器,但這行不通?!

更新:

執行此語句時出現錯誤:

    $first_array = (unsigned long*)malloc(sizeof(unsigned long*));

我看不出有任何錯誤,是嗎?

您在內存中定義的大小等於指針的大小,而不是無符號的long,您應該使用:

first_array = (unsigned long*)malloc(sizeof(unsigned long));

如果您使用的是32位系統,則第一個代碼將在內存中分配4個字節,然后使用指向8字節數據結構的指針指向該代碼。 您需要分配變量的大小,而不是指針的大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM