开发平台(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 大概指的是每一个独立的程式档