memset函式的使用陷阱

2021-07-02 17:34:36 字數 499 閱讀 8597

來看memset函式的定義

void *memset(

void *dest,

int c,

size_t count

);

dest是操作的起始位址,c是需設定的值,count 是需設定的字元數。從定義我們就可以看出這個函式的功能是設定一段記憶體為指定的值。今天在使用時我想使用這個函式把我的int陣列沒個元素設定為2^31-1,即int型所能表達的最大數字。但是發現無法設定為2^31-1。再來看count是需設定的字元數,那麼從這裡看出這個函式裡面操作的單元應該是乙個字元,所以無法直接操作需要4個字元表達的2^31-1。這裡函式定義使用int c還是有問題的。寫程式中這裡的c我覺得可以用16進製表示,可以有瑕疵的解決需要將int陣列初始化為乙個很大的數字或者很小的數字。

memset(maxmap,0x80,count );

memset(minmap,0x7f,count );

memset 函式的使用

語言 c c 標頭檔案 或 函式原型 void memset void ptr,int value,size t num 注 ptr 指向要填充的記憶體塊的指標。value 要設定的值。該值作為int傳遞,但該函式使用該值的unsigned char轉換填充記憶體塊。num 要設定為值的位元組數。解...

memset函式的使用

void memset void s,int ch,size t n 函式解釋 將s中當前位置後面的 n個位元組 typedef unsigned int size t 用 ch 替換並返回s。memset 作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法 ...

memset( 函式的使用

在前面不止一次說過,定義變數時一定要進行初始化,尤其是陣列和結構體這種占用記憶體大的資料結構。在使用陣列的時候經常因為沒有初始化而產生 燙燙燙燙燙燙 這樣的野值,俗稱 亂碼 每種型別的變數都有各自的初始化方法,memset 函式可以說是初始化記憶體的 萬能函式 通常為新申請的記憶體進行初始化工作。它...