如何实现这种静态数组初始化的动态等价物:
char c[2] = {}; // Sets all members to '\0';
换句话说,创建一个动态数组,将所有值初始化为终止字符:
char* c = new char[length]; // how do i amend this?
发布于 2010-01-09 03:09:36
char* c = new char[length]();
发布于 2010-01-09 02:15:04
两种方式:
char *c = new char[length];
std::fill(c, c + length, INITIAL_VALUE);
// just this once, since it's char, you could use memset
或者:
std::vector<char> c(length, INITIAL_VALUE);
在我的第二种方法中,默认的第二个参数已经是0,所以在您的例子中它是不必要的:
std::vector<char> c(length);
[编辑:去投票给弗雷德的答案,char* c = new char[length]();
]
发布于 2010-01-09 02:14:25
也许可以使用std::fill_n()
char* c = new char[length];
std::fill_n(c,length,0);
https://stackoverflow.com/questions/2029651
复制相似问题