在c或c++中使用memset函数对内存块进行初始化时,注意函数是按照字节进行初始化的,对于多字节数据的非零初始化尤其需要注意,如使用如下语句创建一个数组并初始化:
int* a = new int[3];
memset(a,1,3*sizeof(int) );
得到的结果并不是我们想要的a[0] = 1, a[2]=1, a[3] = 1;而是
即a的内容为
,因为他是按照字节进行初始化,而一个int由4个字节构成,所以不能得到我们想要的结果,在这种情况下,最好就是通过循环遍历的方式进行初始化