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

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

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

    jasmine214--love

    只有當(dāng)你的內(nèi)心總是充滿快樂、美好的愿望和寧靜時(shí),你才能擁有強(qiáng)壯的體魄和明朗、快樂或者寧靜的面容。
    posts - 731, comments - 60, trackbacks - 0, articles - 0

    memset,memcpy,strcpy 的區(qū)別

    Posted on 2010-08-14 18:23 幻海藍(lán)夢 閱讀(514) 評論(0)  編輯  收藏 所屬分類: C++
     

    原文:http://www.cnblogs.com/sophia0405/archive/2008/10/23/1293189.html
     memset,memcpy,strcpy 的區(qū)別

    一.函數(shù)原型
       strcpy
       extern char *strcpy(char *dest,char *src);
       #include <string.h>
      
    功能:把src所指由NULL結(jié)束的字符串復(fù)制到dest所指的數(shù)組中
       說明:src和dest所指內(nèi)存區(qū)域不可以重疊且dest必須有足夠的空間來容納src的字符串。
       返回指向dest的指針

    memcpy
    extern void *memcpy(void *dest,void *src,unsigned int count);
    #include <string.h>
       功能:由src所指內(nèi)存區(qū)域復(fù)制count個(gè)字符串到dest所指內(nèi)存區(qū)域.
       說明:src和dest所指內(nèi)存區(qū)域不能重疊,函數(shù)返回指向dest的指針.
      
       memset
       extern void *memset(void *buffer,int c,int count);
       #include <string.h>
       功能:把buffer所指內(nèi)存區(qū)域的前count個(gè)字節(jié)設(shè)置成字符c
       說明:返回指向buffer的指針.


     

    二.區(qū)別
        memset
    用來對一段內(nèi)存空間全部設(shè)置為某個(gè)字符,一般用于在對定義的字符串初始化為' '或者'"0';
        例: char a[100];
              memset(a,'"0',sizeof(a));
       
       memcpy 是用來做內(nèi)存拷貝,可以用來拷貝任何數(shù)據(jù)類型的對象,可以指定拷貝的數(shù)據(jù)長度;
       例:
               char a[100],b[50];
               memcpy(b,a,sizeof(b));   //注意:如果使用sizeof(a),會(huì)造成內(nèi)存溢出
       mem是一段內(nèi)存,他的長度,必須自己記住.memcpy是見著什么拷貝什么。
       
        strcpy 就只能拷貝字符串,它遇到'"0'就結(jié)束拷貝;
          例:char a[100],b[50];
                  strcpy(a,b);
                  如用strcpy(b,a)要注意a中的字符串長度(第一個(gè)'"0'之前) 是否超過50,如果超過,則會(huì)造成b的
    內(nèi)存溢出.它是不會(huì)拷貝'"0'的,所以一般還有加一個(gè)語句:
                  *a='"0';
      
    三.使用技巧
          memset 可以方便的清空一個(gè)數(shù)據(jù)結(jié)構(gòu)的變量或數(shù)組.
          如:
            struct sample_struct
           {
                  char csName[16];
                  int iSeq;
                  int iType;
           };
           對于變量
           struct sample_struct 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[100];
        memset(TEST,0,sizeof(struct sample_struct)*100);

    strcpy是拷貝字符串,以"0為標(biāo)志結(jié)束(即一旦遇到數(shù)據(jù)值為0的內(nèi)存地址拷貝過程即停止)
    strcpy的原型為
    char *strcpy(char *dest, const char *src)
    而memcpy是給定來源和目標(biāo)后,拷貝指定大小n的內(nèi)存數(shù)據(jù),而不管拷貝的內(nèi)容是什么(不僅限于字符)
    memcpy的原型為
    void *memcpy(void *dest, const void *src, size_t n);

    主站蜘蛛池模板: 成av免费大片黄在线观看| 免费一级毛片无毒不卡| 久久久久亚洲av成人无码电影| 中文字幕成人免费高清在线 | 一个人免费观看视频www| 国产成人亚洲精品电影| 亚洲精品成人片在线观看精品字幕| 久久福利资源网站免费看| 精品韩国亚洲av无码不卡区| 久久久久亚洲精品成人网小说 | 一级毛片免费毛片一级毛片免费| 亚洲综合久久精品无码色欲| 亚洲一本综合久久| 好男人视频在线观看免费看片| 一级一级一级毛片免费毛片| 亚洲国产精品免费在线观看| 国产yw855.c免费视频| 99精品视频在线视频免费观看| 特级毛片免费播放| 亚洲乱码在线播放| 国产亚洲精AA在线观看SEE| 精品国产免费观看| 4虎1515hh永久免费| 国产美女视频免费观看的网站| 亚洲一区二区三区91| 亚洲国产精华液网站w| 四虎永久免费影院在线| 美女被cao免费看在线看网站| 国产免费高清69式视频在线观看| 亚洲人成欧美中文字幕| 亚洲人成网址在线观看| 亚洲人成中文字幕在线观看| 日韩一品在线播放视频一品免费| 777成影片免费观看| 少妇性饥渴无码A区免费| 免费VA在线观看无码| 亚洲精品无码久久久久牙蜜区| 亚洲精品第五页中文字幕| 亚洲AV午夜成人片| 国产AV无码专区亚洲AV漫画| 免费吃奶摸下激烈视频|