c語言memset函數(shù)用法 一個(gè)函數(shù)的用法memset?
一個(gè)函數(shù)的用法memset?應(yīng)用一段內(nèi)存后,例如int*P=nullp=malloc(10*sizeof(int))//應(yīng)用了10個(gè)int類型內(nèi)存memset(P,0,10*sizeof(int))/
一個(gè)函數(shù)的用法memset?
應(yīng)用一段內(nèi)存后,例如int*P=nullp=malloc(10*sizeof(int))//應(yīng)用了10個(gè)int類型內(nèi)存memset(P,0,10*sizeof(int))//所有這些memset都被初始化為0memset,用于將快速連續(xù)內(nèi)存初始化為給定的值。示例/*memset。C:這個(gè)程序使用memset*將緩沖區(qū)的前四個(gè)字節(jié)設(shè)置為“*”。*/#include
memset函數(shù)的格式是:memset(array name,value,sizeof(array name))。記住,要使用memset,需要添加字符串。函數(shù)開頭的H頭文件。建議僅使用memset函數(shù)分配0/-1。因?yàn)閙emset是按字節(jié)分配的,所以給每個(gè)字節(jié)分配相同的值,因此int的四個(gè)字節(jié)將附加相同的值。0的二進(jìn)制代碼都是0,-1的二進(jìn)制補(bǔ)碼都是1。因此,當(dāng)值被賦給1時(shí),1的一個(gè)字節(jié)是0000 0001,int值是0000 0001 0000 0001 0000 0001 0000 0001 0000 0001 0000 00001的四個(gè)字節(jié)。輸出值轉(zhuǎn)換為十進(jìn)制,即16843009。因此,如果將其他數(shù)字分配給數(shù)組,請使用fill函數(shù)(但memset更快):#include<stdio。H>#包含<string。H> int main(){int a[5]={1,2,3,4,5}memset(a,0,sizeof(a))(int i=0,i< 5 i){printf(%d,a[i])}printf(“n”)memset(a,1,sizeof(a))(int i=0 i< 5 i){printf(%d,a[i])}printf返回0}輸出0 000 0 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009