程式設計師必備 C 庫函式 memset

2021-10-03 14:13:12 字數 1038 閱讀 8940

c 庫函式 **void memset(void str, int c, size_t n)

複製字元 c(乙個無符號字元)到引數 str 所指向的字串的前 n 個字元。

下面是 memset() 函式的宣告。

void

*memset

(void

*str,

int c, size_t n)

下面的**演示了 memset() 函式的用法。

#include

#include

int main (

)

得到以下結果:

this is string.h library function

$$$$$$$ string.h library function

這裡要注意區分與malloc函式的區別:

malloc函式

void * malloc(size_t n);

用於從堆上分配指定位元組的記憶體空間。其中,形參n為要求分配的記憶體位元組數。如果執行成功,函式範圍獲得的記憶體空間的首位址;執行失敗,返回值為null。由於函式返回值值的型別為void的指標,因此,可以將void指標型別轉換後賦值給任意型別指標,這樣就可以通過操作該型別指標來操作從堆上獲得的記憶體空間。

需要注意的是malloc函式分配得到的記憶體空間是未初始化的。有時候,在使用前需要對該記憶體空間進行初始化,memset就派上用場了。

memset函式

void * memset (void * p,int c,size_t n);

其中,指標p為所操作的記憶體空間的首位址,c為每個位元組所賦的值,n為所操作記憶體空間的位元組長度,也就是記憶體被賦值為c的位元組數。

在使用memset時經常要注意的它是以位元組為單位進行賦值的,所賦值的範圍是0x00~0xff。

總得來說要注意的是malloc函式在分配二維陣列及以上的結構時,可能會產生不連續的記憶體分配,memset函式對資料結構進行初始化的時候將會是對連續記憶體塊進行操作。

程式設計師公升級必備

程式設計師公升級必備 學過高中物理的人,應該會記得,原子中的電子獲得能量之後,會發生能級躍遷,到達更高的能量狀態。其實任何工種都是一樣的,要跳出自己的水平,到達更高的級別,不是件容易的事。這個跳躍過程總需要一些東西的輔助。誠然,如果要成為乙個好人,那麼只要做好在幼兒園中學到的一切就足夠。如果要成為乙...

程式設計師公升級必備

程式設計師公升級必備 學過高中物理的人,應該會記得,原子中的電子獲得能量之後,會發生能級躍遷,到達更高的能量狀態。其實任何工種都是一樣的,要跳出自己的水平,到達更高的級別,不是件容易的事。這個跳躍過程總需要一些東西的輔助。誠然,如果要成為乙個好人,那麼只要做好在幼兒園中學到的一切就足夠。如果要成為乙...

程式設計師必備素質 隨想

寫 這麼多年,突然想到要整理乙個好的程式設計師必備素質。1.紮實的基礎 基礎知識不牢靠都會遇到瓶頸,思維會受到限制,解決問題會難有思路。2.豐富的想象力 需要不按常規出牌,就需要你強大的想象力,把不同問題關聯起來,形成觸類旁通的效果。黑客與畫家 告訴我們最好的程式設計師都是黑客,他們與畫家一樣都豐富...