C函數之memset()函數用法

來源:互聯網
上載者:User

C函數之memset()函數用法

1.功能:將s所指向的某一塊記憶體中的每個位元組的內容全部設定為ch指定的ASCII值, 塊的大小由第三個參數指定,這個函數通常為新申請的記憶體做初始化工作, 其傳回值為指向S的指標

2. 需要的標頭檔 <memory.h> or <string.h>

3.函數原型:

 void *memset(void *s,int ch, unsigned n)

4.memset可以方便的清空一個結構類型的變數或數組(在程式設計中的主要用法)

如:

struct sample_struct

{

  char csName[16];

  int iSeq;

int iType;

};

對於變數

struct  sample_strcut  stTest;

一般情況下,清空stTest的方法:

stTest.csName[0]='\0';

stTest.iSeq=0;

stTest.iType=0;

用memset就非常方便:

memset(&stTest,0,sizeof(struct sample_struct));

如果是數組:

struct sample_struct TEST[10];

memset(TEST,0,sizeof(struct sample_struct)*10);

5.memset函數其他用法

Ø  void *memset(void *s,int c,size_t n)

總的作用:將已開闢記憶體空間 s 的首 n 個位元組的值設為值

Ø memset() 函數常用於記憶體空間初始化(如上面4所說)。

如:

  char str[100];

  memset(str,0,100);

Ø memset()的深刻內涵:用來對一段記憶體空間全部設定為某個字元,一般用在對定義的字串進行初始化為‘memset(a, '\0', sizeof(a));

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.