【发布时间】:2021-08-30 18:44:26
【问题描述】:
如果我们像这样在栈上分配内存:
void foobar()
{
int arr[10];
}
foobar() 退出后,对该内存块 (arr) 的引用丢失。但它归零了吗?
【问题讨论】:
-
“但它是否设置为零?” 否
-
这实际上并不重要,因为任何访问该内存的尝试都是未定义行为,导致您的程序完全不正确并且能够执行任何操作
-
符合标准的程序如何判断它是否符合标准?
-
一般经验法则:C++ 不会花时间做你没有明确要求的事情。
-
如果您想知道
arr可能包含敏感数据并且您希望它被覆盖,这超出了标准 C/C++ 的范围,您必须查看您的实现文档.但我不知道任何常见的实现,除了可能带有特殊的调试标志或仪器。