參考資料:
http://www.cplusplus.com/reference/cstring/memset/
http://jax-work-archive.blogspot.tw/2011/07/c-memset.html
標頭 cstring
函數原型:
void * memset ( void * ptr, int value, size_t num );
功能:可以快速設定一個
連續的記憶體區塊(ex.陣列)的數值
參數說明:
ptr:作用對象的指標
value:欲初始化的值
num : 填充數量
回傳值:
ptr本身
常見用法:
1.把陣列所有元素都設定為0。
在這範例裡,我們使用sizeof()運算子直接取得陣列所佔的記憶體大小。
[mw_shl_code=cpp,true]#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int arr[5]= { 1,2,3,4,5 };
memset( arr , 0 , sizeof(arr) );
//sizeof(arr) = sizeof(int)*5
for(int i=0;i<5;++i)
{
cout<<arr
<<' ';
}
}[/mw_shl_code]
要注意,填充的單位為「位元組」,所以在這裡的sizeof(arr)不等於5,而是等於5乘以每一個int所佔的位元組。
再這種用法中除了0之外,常用的還有-1,0x3F,0x7F,後兩個通常用來代表初始化為無限大