[英]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.