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是 直接通过循环赋值,用法你应该也会,就不写了