我尝试用memset填充2D数组。
int arr[3][3];
memset(arr,1,sizeof(arr));
Result :
16843009 16843009 16843009
16843009 16843009 16843009
16843009 16843009 16843009
答案 0 :(得分:1)
memset(arr,1,sizeof(arr));
处理每个字节。一个int有四个字节(可能会改变),所以memset 1写入每个字节,使得int值达到16843009(在bianry 00000001000000010000000100000001中)。
答案 1 :(得分:1)
memset
在字节级别上工作,而不考虑其他步长。您的int
大4字节,因此每个字节都设置为00000001b
,因此
00000001000000010000000100000001b = 16843009