庫函式memset()是針對位元組操作的,其中第二個引數值被賦給第乙個引數指向的記憶體位址開始的每乙個位元組,因此,這種初始化其實存在侷限性,也導致其主要用於清除陣列內容等。比如:假設i=0,1,2,...
memset(a,0,sizeof(a)); // 此時a[i]=0x00000000
memset(a,-1,sizeof(a)); // 此時a[i]=0xffffffff
memset(a,0x0f,sizeof(a)); // 此時a[i]=0x0f0f0f0f=252645135
由於500=0x1f4,400=0x190,因此,如果使用
memset(a,0x190,sizeof(a)); // 此時a[i]=0x90909090
所以,初始化過程還是建議使用迴圈語句來做。
下面再看乙個例子:
例2: int num[8]; 我們用memset給str初始化為, memset(num,1,8);//這樣是不對的 乙個int是4個位元組的,8個int是32個位元組,所以首先要賦值的長度就不應該為8而是32。
memset 函式用法
memset 原型 extern void memset void buffer,int c,int count 用法 include 功能 把buffer所指記憶體區域的前count個位元組設定成字元c。說明 返回指向buffer的指標。用來對一段記憶體空間全部設定為某個字元。舉例 char a ...
memset函式用法
樓主希望通過庫函式memset 來對乙個陣列進行初始化,需要了解一下該函式的工作原理。庫函式memset 是針對位元組操作的,其中第二個引數值被賦給第乙個引數指向的記憶體位址開始的每乙個位元組,因此,這種初始化其實存在侷限性,也導致其主要用於清除陣列內容等。比如 假設i 0,1,2,memset a...
memset函式用法
將s所指向的某一塊記憶體中的每個位元組的內容全部設定為ch指定的ascii值,塊的大小由第三個引數指定,這個函式通常為新申請的記憶體做初始化工作,其返回值為指向s的指標。在c中 or 在c 中 void memset void s,int ch,size t n 函式解釋 將s中前n個 位元組替換為...