make_unique 值是否初始化 char 数组

新手上路,请多包涵

例如 -

 #include <memory>

int main(){
    const auto bufSize = 1024;
    auto buffer = std::make_unique<char[]>(bufSize);
}

这里的缓冲区是否已经填充了 '\0' 字符,或者我必须手动填充它以避免垃圾值。

这样做的可能方法是什么, std::memset(&buffer.get(), 0, bufSize) 就足够了吗?

原文由 Abhinav Gauniyal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
1 个回答

如果您不提供构造函数参数,则所有 make_* 函数都会对类型使用值初始化。由于 make_unique 的数组形式不带任何参数,它会将元素清零。

原文由 Nicol Bolas 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏