首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C++中初始化动态数组?

如何在C++中初始化动态数组?
EN

Stack Overflow用户
提问于 2010-01-09 02:10:26
回答 9查看 118.7K关注 0票数 64

如何实现这种静态数组初始化的动态等价物:

代码语言:javascript
复制
char c[2] = {};  // Sets all members to '\0';

换句话说,创建一个动态数组,将所有值初始化为终止字符:

代码语言:javascript
复制
char* c = new char[length]; // how do i amend this? 
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-01-09 03:09:36

代码语言:javascript
复制
char* c = new char[length]();
票数 116
EN

Stack Overflow用户

发布于 2010-01-09 02:15:04

两种方式:

代码语言:javascript
复制
char *c = new char[length];
std::fill(c, c + length, INITIAL_VALUE);
// just this once, since it's char, you could use memset

或者:

代码语言:javascript
复制
std::vector<char> c(length, INITIAL_VALUE);

在我的第二种方法中,默认的第二个参数已经是0,所以在您的例子中它是不必要的:

代码语言:javascript
复制
std::vector<char> c(length);

[编辑:去投票给弗雷德的答案,char* c = new char[length]();]

票数 33
EN

Stack Overflow用户

发布于 2010-01-09 02:14:25

也许可以使用std::fill_n()

代码语言:javascript
复制
char* c = new char[length];
std::fill_n(c,length,0);
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2029651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档