開發平台(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 大概指的是每一個獨立的程式檔