[問題] 請問 memory release 的問題
請問一個笨問題...
假設我有一個struct
typedef struct {
int iID;
int* aiList;
}STRUCT_A;
void main()
{
STRUCT_A tA;
//initial struct tA
tA.iID = 100;
ta.aiList = (int*)calloc(5, sizeof(int));
//.....
//reset struct tA
memset(&tA, 0, sizeof(structA;));
==>經過這個後,struct 的element 都會被設成 0
包括動態 array : aiList
我的問題是:
(1) 經過memset 後,這個 aiList 的 memory 有被 release 嗎?
正常的 release 會寫成
if (aiList) free(aiList);
aiList = NULL;
經過memset 成0後,等於是少了free的動作,直接把指標設成0
那原本 aiList 的memory 是不是會一直被佔住直到程式結束?
也就是說,等於是 aiList 的 address 被設成0,但它的 aiList 的 element
仍然還在?
(2) 如果我要驗證上面這件事,請問要怎麼做?
我試過先把 aiList 的 address 記下來...不過好像不是這樣呴 ...XD
}
謝謝各位 :)
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.142.155
推
12/25 11:30, , 1F
12/25 11:30, 1F
→
12/25 11:31, , 2F
12/25 11:31, 2F
→
12/25 11:34, , 3F
12/25 11:34, 3F
→
12/25 11:34, , 4F
12/25 11:34, 4F
→
12/25 11:35, , 5F
12/25 11:35, 5F
→
12/25 11:36, , 6F
12/25 11:36, 6F
推
12/25 14:07, , 7F
12/25 14:07, 7F
→
12/25 14:08, , 8F
12/25 14:08, 8F
→
12/25 14:09, , 9F
12/25 14:09, 9F
Programming 近期熱門文章
PTT數位生活區 即時熱門文章
14
30