c++new一个数组后,对其进行赋值,为何不能如C语言一样?

例如:int*t=newint[13];t[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};我知道这里的t是指针,指向第13个元素... 例如:
int *t = new int[13];
t[13] = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
我知道这里的t是指针,指向第13个元素的下标,只能初始化一个值,那么如果我想像上面这样,我应该怎么办?
展开
 我来答
爱夜009
2014-10-29 · TA获得超过191个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:208万
展开全部

这样是不行的 无论是c语言还是C++ 


数组初始化方法

1、声明时初始化

int a[13] = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } ; //a
int b[20] = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; // b 的前13为给定的值其余为0

2、使用单个当赋值

a[0] = 11;
a[1] = 12;

3、指针是否能在分配内存时初始化

不行

小坏蛋宽guy
2014-10-29 · TA获得超过300个赞
知道小有建树答主
回答量:239
采纳率:66%
帮助的人:140万
展开全部

还是老老实实地一个个赋值吧,不然的话我能想到的写法是这样的:

memcpy(t, (void*)&(((int[]){0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31})[0]), 13*sizeof(int));

 或者这样:

memcpy(t, (void*)(((int[]){0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31})), 13*sizeof(int));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
物理公司的
2014-10-29 · TA获得超过5695个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1340万
展开全部
用new创建数组不能初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2018359
2015-10-20 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1410万
展开全部
不知道你说哪里不一样?
int* a=new int[10];
for(int i=0;i<10;i++)
{
    a[i]=i;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangjialu437
2014-10-29 · 超过22用户采纳过TA的回答
知道答主
回答量:48
采纳率:87%
帮助的人:19.5万
展开全部
int* *t = new(int*)[13];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式