[問題] free 之後
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
BIOS, UEFI. GCC or VC
C + 組語
問題(Question):
今天跟前輩聊到 allcate 之後的free
ex:
*VOID
Function A {
pointer = allocate ;
...
if (Status != Success) {
free (pointer)
return NULL;
}
return pointer;
}
Function B {
ptr = Function A ();
if (ptr == NULL) return;
}
我的觀念是認為雖然做了free, 但是記憶體中的內容 pointer位址還是指向某個地方
所以會有風險, 做NULL是有必要的 (pointer = NULL).
前輩認為, 如果是local function, 在free之後去做 pointer = NULL 是不需要的code
分歧點大概就是他認為毫無風險
我本身是數學系背景, 也沒什麼經驗舉例去說服前輩
想請教諸位, 真的如前輩所說, function/driver 過了就沒事了嗎?
補充說明(Supplement):
舉例內容不是UEFI語法, 只是大概的意思
UEFI BIOS的driver 大概指的是每一個獨立的程式檔
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.30.118
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1432869887.A.124.html
→
05/29 11:28, , 1F
05/29 11:28, 1F
→
05/29 11:29, , 2F
05/29 11:29, 2F
推
05/29 12:34, , 3F
05/29 12:34, 3F
推
05/29 12:37, , 4F
05/29 12:37, 4F
→
05/29 12:38, , 5F
05/29 12:38, 5F
→
05/29 12:39, , 6F
05/29 12:39, 6F
→
05/29 12:43, , 7F
05/29 12:43, 7F
→
05/29 12:44, , 8F
05/29 12:44, 8F
→
05/29 12:44, , 9F
05/29 12:44, 9F
→
05/29 12:50, , 10F
05/29 12:50, 10F
推
05/29 12:51, , 11F
05/29 12:51, 11F
→
05/29 13:02, , 12F
05/29 13:02, 12F
→
05/29 13:04, , 13F
05/29 13:04, 13F
→
05/29 13:04, , 14F
05/29 13:04, 14F
→
05/29 13:05, , 15F
05/29 13:05, 15F
→
05/29 14:22, , 16F
05/29 14:22, 16F
→
05/29 14:23, , 17F
05/29 14:23, 17F
→
05/29 14:24, , 18F
05/29 14:24, 18F
→
05/29 14:25, , 19F
05/29 14:25, 19F
→
05/29 14:33, , 20F
05/29 14:33, 20F
推
05/29 20:51, , 21F
05/29 20:51, 21F
→
05/29 20:52, , 22F
05/29 20:52, 22F
→
05/29 20:53, , 23F
05/29 20:53, 23F
推
05/29 21:09, , 24F
05/29 21:09, 24F
推
05/29 22:04, , 25F
05/29 22:04, 25F
→
05/29 22:37, , 26F
05/29 22:37, 26F
→
05/29 22:43, , 27F
05/29 22:43, 27F
→
05/29 22:44, , 28F
05/29 22:44, 28F
→
05/29 23:17, , 29F
05/29 23:17, 29F
→
05/29 23:18, , 30F
05/29 23:18, 30F
推
05/31 09:20, , 31F
05/31 09:20, 31F
→
05/31 09:21, , 32F
05/31 09:21, 32F