现在的位置: 首页 > 综合 > 正文

关于memset的一点误解

2014年02月18日 ⁄ 综合 ⁄ 共 307字 ⁄ 字号 评论关闭

        memset函数的原型为:void *memset(void *, int , unsigned),这个函数可以一字节一字节地把整个数组设置为一个指定的值。第1个参数void *表示地址,用于接收数组的起始地址, 第2个参数int 是设置数组每个字节的值。第3个参数是数组的长度(字节数,不是元素个数)。

        一直以来我都把第二个参数当成了数组元素的值,结果今天就犯了错误,我在程序里这么写:

#define ROW 100

short nArray[ROW];
memset(nArray, 
1, ROW * sizeof(short);

结果数组每个元素都变成了257,二进制即为0000 0001 0000 0001

抱歉!评论已关闭.