【发布时间】:2021-10-27 22:51:36
【问题描述】:
以下哪一种是将缓冲区初始化为零的正确方法?
WCHAR szBuffer[100]={};
WCHAR szBuffer[100]={0};
WCHAR szBuffer[100]={'\0'};
WCHAR szBuffer[100]{};
WCHAR szBuffer[100];
wmemset(szBuffer, '\0', 100);
【问题讨论】:
-
前两个是等价的;第三个不编译;第四个不是初始化(并且使用了一个神秘且可能不正确的大小参数)。
-
我修好了第三个和第四个
-
第四个 stil 的尺寸不正确。
-
现在前三个是等价的,第四个肯定有错误的大小参数。
-
std::array
szBuffer{};请务必使用基于范围的 for 循环或稍后在循环中使用 szBuffer.size()。所以你不必在你的代码中输入 100
标签: c++ visual-c++ c++17 c++14