天天看點

C++中memset()函數的作用 - !!-陽光-!!

C++中memset()函數的作用

memset()函數可以對大記憶體的配置設定進行很友善的操作(初始化),所謂“初始化”,當然是指将你定義的變量或申請的空間賦予你所期望的值,

例如語句int i=0;就表明定義了一個變量i,并初始化為0;

如果int j=5;就表明定義了一個變量j,并初始化為5。

但是對于大塊兒記憶體的配置設定,這種方法當然不行,例如int arr[100];定義了數組arr,包含100個元素,如果你寫成int arr[100]=0;想将數組全部内容初始化為0,是不行的,連編譯都不能通過。這種情況的初始化,有兩種方法,

一種是一個一個的初始化,如for(int i=0;i<100;i++)arr[i]=0;就完成了數組的初始 如for(int i=0;i<100;i++)arr[i]=0;就完成了數組的初始化。

另一種方法,就是使用memset:一個語句就夠了:--memset(arr,0,sizeof(int)*100); 各參數解釋如下:arr是數組的首位址,0就是要講這些位址的内容指派為0,sizeof(int)求出int類型的長度,乘以100就表示arr數組的整個長度。

注:當然,如果用malloc配置設定的記憶體,一般隻能使用memset來初始化了,用第一種初始化方法明顯不合适。

舉例: #include //我試了一下,C語言這麼用,C++還可以用 #include void main( void ) { char buffer[] = "This is a test of the memset function"; printf( "Before: %s/n", buffer ); memset( buffer, \'*\', 4 ); printf( "After: %s/n", buffer ); }

輸出: Before: This is a test of the memset function

        After: **** is a test of the memset function