memset的局限

memset包含在C的头文件string.h中,主要用在将一段内存初始化为某个值。如下:

int a[100];

memset( a,0,100*sizeof(int) );//将数组a初始化为0

需要注意的是:memset对内存赋值时严格按字节来的,所以memset只能用于对数组赋0或-1,0的二进制(补码)为0000 0000,而-1的二进制(补码)为1111 1111。


如下代码:

int a[2];

memset(a,1,2*sizeof(int));

cout<<a[0]<<" "<<a[1]<<endl;

运行结果:



按字节赋值为:0000 0001 0000 0001,转化为十进制正好是16843009。

你可能感兴趣的:(memset)