Memset常用用法

2021-07-25 03:37:28 字數 802 閱讀 5512

今天在寫程式的時候翻蠢寫出了memset(a,1,sizeof(1))的**,一直找不到錯誤在哪.後來輸出中間結果發現陣列並沒有被初始化成為1,尋找原因,原來是因為被初始化成為了0x0101,並沒有被初始化成為1.現總結一波memset的常用的用法。

1.初始化字元陣列,如下

char c[10];

memset(c,0,sizeof(c));

memset(c,1,sizeof(c));

2.初始化int型別陣列,如下

int a[10];

memset(c,0,sizeof(c));

memset(c,-1,sizeof(c));

memset(c,1,sizeof(c));//錯誤用法

3.

初始化結構體,如下

struct  test;

struct test t;

memset(&t,0,sizeof(t));

4.初始化含有指標的結構體時可能會造成記憶體洩露,如:

struct test

struct test t;

t.b=(int*)malloc(sizeof(int)*10);

memset(&t,0,sizeof(t));

這樣初始化並不會初始化陣列b的每個成員,只會將b初始化為0,而b已經分配了記憶體,會造成記憶體洩露

綜合來說,memset是以位元組為單位分配記憶體,這樣比我們手動初始化快的多,但是要注意一些易錯的地方。

CRUL常用用法

1 儲存http結果 curl o page.html 2設定 curl x 123.45.67.89 1080 o page.html 3 自動填寫使用者名稱密碼 curl u name passwd ftp ip port path file 4上傳檔案 curl t localfile u n...

grep awk sed常用用法

sed指令碼是乙個sed的命令清單,啟動sed時以 f選項引導指令碼檔名。sed對於指令碼中輸入的命令非常挑剔,在命令的末尾不能有任何空白或文字,如果在一行中有多個命令,要用分號分隔。以 開頭的行為注釋行,且不能跨行。7.小技巧 在sed的命令列中引用shell變數時要使用雙引號,而不是通常所用的單...

NSStringg常用用法

建立乙個新字串並將其設定為 path 指定的檔案的內容,使用字元編碼enc,在error上返回錯誤 id stringwithcontentsofurl nsurl url encoding nsstringencoding enc error nserror error 建立乙個新字串並將其設定為...