<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hopes

    Start Here..

     

    C語(yǔ)言中memset函數(shù)詳解 (

    C語(yǔ)言中memset函數(shù)詳解

     (2011-11-16 21:11:02)
    標(biāo)簽: 

    雜談

    分類(lèi): 工具相關(guān)

    功 能: 將s所指向的某一塊內(nèi)存中的每個(gè)字節(jié)的內(nèi)容全部設(shè)置為ch指定的ASCII值,

      塊的大小由第三個(gè)參數(shù)指定,這個(gè)函數(shù)通常為新申請(qǐng)的內(nèi)存做初始化工作

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

      程序例:

      #include <string.h>

      #include <stdio.h>

      #include <memory.h>

      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;

      }

      輸出結(jié)果:

      Buffer before memset: Hello world

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

    memset函數(shù)詳細(xì)說(shuō)明

      1。void *memset(void *s,int c,size_t n)

      總的作用:將已開(kāi)辟內(nèi)存空間 s 的首 n 個(gè)字節(jié)的值設(shè)為值 c。

      2。例子

      main(){

      char *s="Golden Global View";

      clrscr();

      memset(s,'G',6);//貌似這里有點(diǎn)問(wèn)題//

      printf("%s",s);

      getchar();

      return 0;

      } 

      【這個(gè)問(wèn)題相當(dāng)大,程序根本就運(yùn)行不下去了,你這里的S志向的是一段只讀的內(nèi)存,而你memset又試圖修改它,所以運(yùn)行時(shí)要出錯(cuò),修改辦法char *s修改為char s[]】

      3。memset() 函數(shù)常用于內(nèi)存空間初始化。如:

      char str[100];

      memset(str,0,100);

      4。memset()的深刻內(nèi)涵:用來(lái)對(duì)一段內(nèi)存空間全部設(shè)置為某個(gè)字符,一般用在對(duì)定義的字符串進(jìn)行初始化為‘memset(a, '/0', sizeof(a));

      memcpy用來(lái)做內(nèi)存拷貝,你可以拿它拷貝任何數(shù)據(jù)類(lèi)型的對(duì)象,可以指定拷貝的數(shù)據(jù)長(zhǎng)度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會(huì)造成b的內(nèi)存地址溢出。

      strcpy就只能拷貝字符串了,它遇到'/0'就結(jié)束拷貝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串長(zhǎng)度(第一個(gè)‘/0’之前)是否超過(guò)50位,如超過(guò),則會(huì)造成b的內(nèi)存地址溢出。

      5.補(bǔ)充:某人的一點(diǎn)心得

      memset可以方便的清空一個(gè)結(jié)構(gòu)類(lèi)型的變量或數(shù)組。

      如:

      struct sample_struct

      {

      char csName[16];

      int iSeq;

      int iType;

      };

      對(duì)于變量

      struct sample_strcut stTest;

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

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

      stTest.iSeq=0;

      stTest.iType=0;

      用memset就非常方便:

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

      如果是數(shù)組:

      struct sample_struct TEST[10];

      則

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

      6。strcpy

      原型:extern char *strcpy(char *dest,char *src);

      用法:#i nclude

      功能:把src所指由NULL結(jié)束的字符串復(fù)制到dest所指的數(shù)組中。

      說(shuō)明:src和dest所指內(nèi)存區(qū)域不可以重疊且dest必須有足夠的空間來(lái)容納src的字符串。

      返回指向dest的指針。

      memcpy

      原型:extern void *memcpy(void *dest, void *src, unsigned int count);

      用法:#i nclude

      功能:由src所指內(nèi)存區(qū)域復(fù)制count個(gè)字節(jié)到dest所指內(nèi)存區(qū)域。

      說(shuō)明:src和dest所指內(nèi)存區(qū)域不能重疊,函數(shù)返回指向dest的指針。

      memset

      原型:extern void *memset(void *buffer, int c, int count);

      用法:#i nclude

      功能:把buffer所指內(nèi)存區(qū)域的前count個(gè)字節(jié)設(shè)置成字符c。

      說(shuō)明:返回指向buffer的指針。

    posted on 2013-09-18 16:52 ** 閱讀(156) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    新聞檔案

    相冊(cè)

    收藏夾

    C#學(xué)習(xí)

    友情鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 99久久99热精品免费观看国产| 中文字幕亚洲电影| 久艹视频在线免费观看| 美女视频黄频a免费| 亚洲一级毛片在线播放| 亚洲国产精品无码AAA片| 亚洲国产成人五月综合网| 中文字幕无码免费久久99| 免费一级毛片在线播放视频| 国产成人不卡亚洲精品91| 亚洲an日韩专区在线| 亚洲国产人成在线观看69网站 | 亚洲伊人久久大香线蕉在观| 国产精品亚洲A∨天堂不卡| 国产一区视频在线免费观看| 中国在线观看免费高清完整版| 日韩精品内射视频免费观看| 久久九九久精品国产免费直播| 色噜噜噜噜亚洲第一| 亚洲熟妇成人精品一区| 亚洲一级免费视频| 亚洲国产精品综合久久网各 | 91在线视频免费观看| 特级毛片免费播放| 国产99久久亚洲综合精品| 亚洲免费综合色在线视频| 亚洲首页国产精品丝袜| 亚洲噜噜噜噜噜影院在线播放| 久久久无码精品亚洲日韩京东传媒| 亚洲AV综合色区无码一区 | 亚洲一区二区在线免费观看| 手机看片国产免费永久| 在线视频网址免费播放| 中国国语毛片免费观看视频| 精品久久久久久国产免费了 | 免费中文字幕不卡视频| 免费一级黄色毛片| 国产成人亚洲精品91专区手机| 亚洲另类激情专区小说图片| 亚洲免费日韩无码系列| 亚洲日韩精品一区二区三区 |