读书人

memset使用解决方案

发布时间: 2012-09-14 23:00:49 作者: rapoo

memset使用
在VC6下,若“int array[10];memset(array,0,10*sizeof(int));”,则正常,但如果是“int array[10];
memset(array,1,10*sizeof(int));”则array数组中的值全部是16843009,而不是1,请问这是什么原因,如何使数组中的元素全部值全部为1?

[解决办法]
memset是按字节去赋值的,,但你是INT数组,你数据里的一个整数是4个字节,赋完值后二进表示就是 00000001000000010000000100000001 转成十进制就是 16843009

但是0无所谓的,4个字节都赋的0,还是=0

整形数组初始化一般两种方法,
1是 int array[10]={1,1,1 ......};

2是 直接通过循环赋值,用法你应该也会,就不写了

读书人网 >C++

热点推荐