C++ 动态数组赋值

在C++里面
int a[]={10,9,8};
那么
int *a=new int[3];
怎么能像上面一样,好值呢;
方法要直接点的,不要用什么循环之类的窍门,这我会=,.=,用C++设定好的写法.

首先你问这问题根本就不懂初始化和赋值的区别,还有就是“动态数组赋值“这是你自己发明的词吧,我工作6年了没听说过有这么个东西!!!
int a[]={10,9,8};(这个不是赋值,这个是初始化,int这个类里自己定的方式)
和int a[3]; a[0] = 10; a[1] = 9; a[2] = 8;(这个才叫赋值)

int *a = new int[3]; new了后就已经被初始化过了,所以不能像上面那样写,你可以用memcpy和memmove,或者for循环,或者单独赋值,或者你自己写个操作符重载也可以,呵呵
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-22
可以用memcpy和memmove

比如

int a[]={10,9,8};
int *b=new int[3];

memcpy(b,a,sizeof(a));或者
memmove(b,a,sizeof(a));
第2个回答  2010-10-22
int *a[]={new int(10),new int(9),new int(8)}
相似回答