我找到了一些示例代码:
addrinfo hints;
SecureZeroMemory(&hints, sizeof(hints));
Run Code Online (Sandbox Code Playgroud)
有没有理由在这里使用SecureZeroMemory()?为什么不呢
addrinfo hints = {0};
Run Code Online (Sandbox Code Playgroud)
示例代码:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms742203(v = vs.85).aspx
如果(例如)变量在本范围内不再使用(或者在编译器证明它不会改变程序的内部一致性的任何其他情况下),编译器可以优化掉零声明.对于安全关键型内存,当涉及到检查您内存的外部进程时,这可能会危及应用程序的安全性.SecureZeroMemory这是为了使它不被优化掉.
我无法确定为什么这个特定的代码片段会选择该函数而不是其他归零内存范围的方法.这可能是代码作者或误入歧途的公司政策对其目的的误解.