例如 -
#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
的数组形式不接受任何参数,因此它将元素归零。