给数组赋初值遇到的问题

img


这个memset为什么不能给数组赋正确的值。
本意是想将数组里的值全初始化为7,但是结果却是一个奇怪的数字(黑人问号)。

memset是以字节为单位的,每一个字节都是7,int有4个字节,所以是0x07070707,换算成十进制就是117901063。想全部初始化为7就用循环:

for(int i=0;i<6;i++)arr[i]=7;

这个重置内存是以字节为单位的,也就是给每个字节赋值,不是给每个变量赋值。

应该是 6 * sizeof(int)
因为是按照字节计算的