int*a=new int[124]初始化问题

来源:互联网 发布:网络女神思瑞在哪直播 编辑:程序博客网 时间:2024/06/01 09:12

http://blog.csdn.net/qiuchangyong/article/details/18410733

http://zhidao.baidu.com/link?url=sbrVKtqfMQfLOJD-OGLOQALwgQEDopyeyugzYwuX-4Pgx_SiTDI1LGxN6O4S1fxFHnMEeenOD4bCIyp1qkfvaq

1、

int *a=new int[1000];//这样是定义一个数组a[1000],并没有初始化,里面的值可能随机出。

2、

int *a=new int[1000]();//后面加一个括号就是初始化了,这样a[1000]里面所有值都是0

3、

int *a=new int[1000];

 memset(a,0,1000*sizeof(int));//这样效果和2结果是一样的。


方法2和3,看你怎么用,再举个别的例子:

typedef unsigned char UCHAR;


int len = 1224;//sizeof(m_FSNBody.ImageSNo.SNo):1024~1536之间都可以;

//UCHAR *desret = new UCHAR[len]();

或者
UCHAR *desret = new UCHAR[len];
memset(desret,0xff,1224*sizeof(UCHAR));//注意,用0x00是全设置成0,用0xff是把里面所有值都默认成1111   1111,

为什么是0x00 或者 0xff 呢?

因为UCHAR占用1个字节,就是8个0~~~~~~8个1大小

short 占2个字节,16个位(0x0000~0xffff)

int占4个字节,32位,(用0x00000000~~~0xffff ffff)



0 0
原创粉丝点击