memset的正规用法是只能用来初始化char类型的数组的,也就是说,它只接受0x00-0xFF的赋值
然而,在大多数情况下,需要对一个double或int的数组赋一个相对很大或很小的初值
以下的赋值方式是不正确的:
memset(arr,2147483647,sizeof(arr));
但是可以用一些技巧,来得到一个差不多的最大值,比如像:
memset(arr,0x7F,sizeof(arr));
它将arr中的值全部赋为2139062143
这是用memset对int赋值所能达到的最大值
类似的还有:
memset(arr,0x80,sizeof(arr)); //set int to -2139062144
memset(arr,0x7F,sizeof(arr)); //set double to 1.38242e+306
memset(arr,0xFE,sizeof(arr)); //set double to -5.31401e+303