memset的正規(guī)用法是只能用來(lái)初始化char類(lèi)型的數(shù)組的,也就是說(shuō),它只接受0x00-0xFF的賦值
然而,在大多數(shù)情況下,需要對(duì)一個(gè)double或int的數(shù)組賦一個(gè)相對(duì)很大或很小的初值
以下的賦值方式是不正確的:
memset(arr,2147483647,sizeof(arr));
但是可以用一些技巧,來(lái)得到一個(gè)差不多的最大值,比如像:
memset(arr,0x7F,sizeof(arr));
它將arr中的值全部賦為2139062143
這是用memset對(duì)int賦值所能達(dá)到的最大值
類(lèi)似的還有:
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