例如 -

#include <memory>

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

这里的缓冲区是否已经填充了'\0'字符,或者我将不得不手动填充它以避免垃圾值。
std::memset(&buffer.get(), 0, bufSize)足够了吗?

最佳答案

如果不提供构造函数参数,则所有make_*函数都将值初始化为该类型。由于make_unique的数组形式不接受任何参数,因此它将元素归零。

10-02 07:31