释放时分配在堆栈上的内存是否会被清除?
如果我们像这样在堆栈上分配内存:
void foobar()
{
int arr[10];
}
后foobar()退出,这个存储器块的参考(arr)丢失。但它被归零了吗?
回答
但它是否设置为零?
不/也许。无法保证未分配内存的“价值”。标准也没有任何方式保证遵守假设的“值”。
从信息安全的角度来看:如果您将私人信息存储在一个对象中,那么您应该假设该信息即使在该对象的存储期限之后仍然存在。如果您的程序容易受到攻击(通常是通过未定义的行为),那么攻击者可能能够访问该信息。