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