程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c語言memset()函數,c語言memset函數

c語言memset()函數,c語言memset函數

編輯:關於C語言

c語言memset()函數,c語言memset函數


1)名稱:memset()函數

2)別稱:char型初始化函數

3)功能: 將s所指向的某一塊內存中的每個字節的內容全部設置為ch指定的ASCII值,塊的大小由第三個參數指定,這個函數通常為新申請的內存做初始化工作

4)用法: void *memset(void *s, char ch, unsigned n);

5)作用:在一段內存塊中填充某個給定的值,它是對較大的結構體或數組進行清零操作的一種最快方法。

6)代碼示例:

   #include   

   #include   

   #include   

   int main(void)   

   {   

       char buffer[] = "Hello world/n";   

       printf("Buffer before memset: %s/n", buffer);   

       memset(buffer, '*', strlen(buffer) );   

       printf("Buffer after memset: %s/n", buffer);   

       return 0;   

}   

輸出結果:   

Buffer before memset: Hello world   

Buffer after memset: ***********

7)memset()的深刻內涵:用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為‘memset(a, '/0', sizeof(a));memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。strcpy就只能拷貝字符串了,它遇到'/0'就結束拷貝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串長度(第一個‘/0’之前)是否超過50位,如超過,則會造成b的內存地址溢出。

                                                                                                                                                             參考文獻:搜狗百科,c語言專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved