如何new一个数组并为其初始化

zsfdyxf 2010-12-24 07:52:06
c++ 中怎么new一个数组并为其初始化呀?

int * a = new int(20),这个相当于给这块内存初始化为20;

那么可不可以这样:

int * a = new int[20](20);

给这个数组每块内存都初始化为20,如果不行,那应该怎么办呀;
...全文
11796 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
flysnowhite 2010-12-25
  • 打赏
  • 举报
回复
这个C、C++没办法实现的,只能先定义然后赋值。
my1111ym 2010-12-25
  • 打赏
  • 举报
回复

int * a = new int[20](20);

貌似没有这么初始化的,反正我是没见过,但是不知道有没有更好的初始化的措施~~
zongzihe 2010-12-25
  • 打赏
  • 举报
回复
+1
[Quote=引用 7 楼 muyu1990 的回复:]
引用 1 楼 dizuo 的回复:

C/C++ code
int * a = new int[20];
//memset或者
for (int i(0); i<20; i++) a[i] = 0;

+1
[/Quote]
muyu1990 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dizuo 的回复:]

C/C++ code
int * a = new int[20];
//memset或者
for (int i(0); i<20; i++) a[i] = 0;
[/Quote]
+1
qwer_boo 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dizuo 的回复:]

C/C++ code
int * a = new int[20];
//memset或者
for (int i(0); i<20; i++) a[i] = 0;
[/Quote]
只能这样了
gules 2010-12-24
  • 打赏
  • 举报
回复
是的,new[](new的数组版)要求元素对象的类型必须具有默认构造函数(内建类型的“默认构造函数”是什么也不做),否则将不能使用new[]。
luciferisnotsatan 2010-12-24
  • 打赏
  • 举报
回复
new数组只能用 无参的构造函数或者所有参数都有默认值的构造函数
QQ443254435 2010-12-24
  • 打赏
  • 举报
回复
new 分配的空间是一个整块。不能像楼主所说的。给a【20】每个都分配那么多。。循环可以,如果需要的话
  • 打赏
  • 举报
回复
循环赋值!
ryfdizuo 2010-12-24
  • 打赏
  • 举报
回复
int * a = new int[20];
//memset或者
for (int i(0); i<20; i++) a[i] = 0;

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧