天天看點

memset函數

頭檔案   c中 <string.h>       c++中 <cstring>

void *memset(void *s, int ch, size_t n);

函數解釋:将 s 中前 n 個位元組用 ch 替換并傳回 s 。

memset:作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或數組進行清零操作的一種最快方法。

例:把 char a[20]清零 :          memset(a,0,20);    把a的前20個位元組用0替換并傳回a!

                                                      memset(a,'0',20);

                                                      memset(a,'1',20);

memset函數也是以位元組為機關進行指派

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int a[5];
memset(a,1,5);//如果這裡改成memset(a,1,5 *sizeof(int))也不可以,因為memset按位元組指派。
for(int i = 0;i < 5;i++)
cout<<a[i]<<" ";
system("pause");
return 0;
}  
/*
這樣寫不行!!
如果用memset(a,1,20);(實際上與memset(a,1,5*sizeof(int))結果是一樣的)
就是對a指向的記憶體的20個位元組進行指派,每個都用ASCⅡ為1的字元去填充,轉為二進制後,1就是00000001,
占一個位元組。一個INT元素是4位元組,合一起就是00000001000000010000000100000001,就等于16843009,就完
成了對一個INT元素的指派了
*/
           
c++

繼續閱讀