程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言中 FREE釋放內存的時候,系統如何知道釋放多少字節的內存?

C語言中 FREE釋放內存的時候,系統如何知道釋放多少字節的內存?

編輯:C語言問答

C語言中 FREE釋放內存的時候,系統如何知道釋放多少字節的內存?

1 int * p = (int *)malloc(4);

2 char * p =(char *)malloc(4);
free(p);

FREE的時候,動態空間的內存初始地址是知道的,但是釋放多少自己的內存,這個信息在內存裡保存在哪呢? 單憑一個int *類型的指針變量中的地址,不足以知道要釋放多少字節,高手賜教,謝謝。注意了 我是想問,在內存中,P所指向的一塊區域,數據類型是啥,具體有多少數據類型,系統如何判斷?
即 1 和 2同樣釋放P 1中P所指的是INT 2中P所指的是CHAR 這個信息放在內存哪裡?

最佳回答:

它是根據 參數來決定釋放多少內存的,如果參數是 int *, 則釋放4個字節(vc6.0),因為各種數據類型所占的內存大小是不一樣的,而且,程序運行時,內存分成兩部分,一部分是代碼區,一部分是數據區,你說的信息應該是存放在數據區中。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved