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个元素的下标,只能初始化一个值,那么如果我想像上面这样,我应该怎么办? 展开
int *t = new int[13];
t[13] = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
我知道这里的t是指针,指向第13个元素的下标,只能初始化一个值,那么如果我想像上面这样,我应该怎么办? 展开
5个回答
展开全部
这样是不行的 无论是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、指针是否能在分配内存时初始化
不行
展开全部
还是老老实实地一个个赋值吧,不然的话我能想到的写法是这样的:
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));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用new创建数组不能初始化
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你说哪里不一样?
int* a=new int[10];
for(int i=0;i<10;i++)
{
a[i]=i;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int* *t = new(int*)[13];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询