memset函数的原型为:void *memset(void *, int , unsigned),这个函数可以一字节一字节地把整个数组设置为一个指定的值。第1个参数void *表示地址,用于接收数组的起始地址, 第2个参数int 是设置数组每个字节的值。第3个参数是数组的长度(字节数,不是元素个数)。
一直以来我都把第二个参数当成了数组元素的值,结果今天就犯了错误,我在程序里这么写:
#define ROW 100
short nArray[ROW];
memset(nArray, 1, ROW * sizeof(short);
short nArray[ROW];
memset(nArray, 1, ROW * sizeof(short);
结果数组每个元素都变成了257,二进制即为0000 0001 0000 0001