最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

對比C語言中memccpy()函數(shù)和memcpy()函數(shù)的用法

 更新時(shí)間:2015年08月26日 11:01:45   投稿:goldensun  
這篇文章主要介紹了對比C語言中memccpy()函數(shù)和memcpy()函數(shù)的用法,二者都是用于復(fù)制內(nèi)存內(nèi)容,注意區(qū)別,需要的朋友可以參考下

C語言memccpy()函數(shù):復(fù)制內(nèi)存中的內(nèi)容
頭文件:

#include <string.h>

定義函數(shù):

void * memccpy(void *dest, const void * src, int c, size_t n);

函數(shù)說明:memccpy()用來拷貝src 所指的內(nèi)存內(nèi)容前n 個(gè)字節(jié)到dest 所指的地址上。與memcpy()不同的是,memccpy()會在復(fù)制時(shí)檢查參數(shù)c 是否出現(xiàn),若是則返回dest 中值為c 的下一個(gè)字節(jié)地址。

返回值:返回指向dest 中值為c 的下一個(gè)字節(jié)指針。返回值為0 表示在src 所指內(nèi)存前n 個(gè)字節(jié)中沒有值為c的字節(jié)。

范例

#include <string.h>
main(){
  char a[] = "string[a]";
  char b[] = "string(b)";
  memccpy(a, b, 'B', sizeof(b));
  printf("memccpy():%s\n", a);
}

執(zhí)行結(jié)果:

memccpy():string(b)

C語言memcpy()函數(shù):復(fù)制內(nèi)存內(nèi)容(忽略\0)
頭文件:

#include <string.h>

memcpy() 用來復(fù)制內(nèi)存,其原型為:

  void * memcpy ( void * dest, const void * src, size_t num );

memcpy() 會復(fù)制 src 所指的內(nèi)存內(nèi)容的前 num 個(gè)字節(jié)到 dest 所指的內(nèi)存地址上。

memcpy() 并不關(guān)心被復(fù)制的數(shù)據(jù)類型,只是逐字節(jié)地進(jìn)行復(fù)制,這給函數(shù)的使用帶來了很大的靈活性,可以面向任何數(shù)據(jù)類型進(jìn)行復(fù)制。

需要注意的是:
dest 指針要分配足夠的空間,也即大于等于 num 字節(jié)的空間。如果沒有分配空間,會出現(xiàn)斷錯(cuò)誤。
dest 和 src 所指的內(nèi)存空間不能重疊(如果發(fā)生了重疊,使用 memmove() 會更加安全)。

與 strcpy() 不同的是,memcpy() 會完整的復(fù)制 num 個(gè)字節(jié),不會因?yàn)橛龅健癨0”而結(jié)束。

【返回值】返回指向 dest 的指針。注意返回的指針類型是 void,使用時(shí)一般要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。


代碼示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N (10)
int main()
{
  char* p1 = "abcde";
  char* p2 = (char*)malloc(sizeof(char) * N);
  char* p3 = (char*)memcpy(p2, p1, N);
  printf("p2 = %s\np3 = %s\n", p2, p3);
  free(p2);
  p2 = NULL;
  p3 = NULL;
  system("pause");
  return 0;
}

運(yùn)行結(jié)果:

p2 = abcde
p3 = abcde

代碼說明:
1) 代碼首先定義p1,p2,p3三個(gè)指針,但略有不同,p1指向一個(gè)字符串字面值,給p2分配了10個(gè)字節(jié)的內(nèi)存空間。

2) 指針p3通過函數(shù)memcpy直接指向了指針p2所指向的內(nèi)存,也就是說指針p2、p3指向了同一塊內(nèi)存。然后打印p2,p3指向的內(nèi)存值,結(jié)果是相同的。

3) 最后按照好的習(xí)慣釋放p2,并把p3也置為NULL是為了防止再次訪問p3指向的內(nèi)存,導(dǎo)致野指針的發(fā)生。

相關(guān)文章

  • C語言編寫簡單的定時(shí)關(guān)機(jī)程序

    C語言編寫簡單的定時(shí)關(guān)機(jī)程序

    本文給大家分享的是一則C語言編寫的簡單的定時(shí)關(guān)機(jī)程序,可以設(shè)置0-600秒倒計(jì)時(shí),有需要的小伙伴可以參考下。
    2016-02-02
  • C++實(shí)現(xiàn)LeetCode(115.不同的子序列)

    C++實(shí)現(xiàn)LeetCode(115.不同的子序列)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(115.不同的子序列),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C/C++ 獲取自身IP與域名片段的示例代碼

    C/C++ 獲取自身IP與域名片段的示例代碼

    這篇文章主要介紹了C/C++ 獲取自身IP與域名片段的示例代碼,幫助大家更好的理解和學(xué)習(xí)C/C++編程,感興趣的朋友可以了解下
    2020-10-10
  • C++快速冪與大數(shù)取模算法示例

    C++快速冪與大數(shù)取模算法示例

    這篇文章主要介紹了C++快速冪算法和大數(shù)取模算法的示例,對C++程序員來說有一定的幫助,有需要的朋友可以參考借鑒,下面來一起看看。
    2016-08-08
  • 詳解C++ sizeof(下)

    詳解C++ sizeof(下)

    這篇文章主要介紹了C++ sizeof的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-08-08
  • C/C++中的靜態(tài)變量注意事項(xiàng)

    C/C++中的靜態(tài)變量注意事項(xiàng)

    本文主要介紹了C/C++中的靜態(tài)變量注意事項(xiàng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 深入淺析C++多態(tài)性與虛函數(shù)

    深入淺析C++多態(tài)性與虛函數(shù)

    多態(tài)是指同樣的消息被不同的對象接收時(shí)導(dǎo)致不同的行為。本文通過實(shí)例代碼給大家介紹了C++多態(tài)性與虛函數(shù)的相關(guān)知識,感興趣的朋友一起看看吧
    2020-02-02
  • C語言 鏈?zhǔn)蕉鏄浣Y(jié)構(gòu)詳解原理

    C語言 鏈?zhǔn)蕉鏄浣Y(jié)構(gòu)詳解原理

    二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu)是指,用鏈表來表示一棵二叉樹,即用鏈來指示元素的邏輯關(guān)系。通常的方法是鏈表中每個(gè)結(jié)點(diǎn)由三個(gè)域組成,數(shù)據(jù)域和左右指針域,左右指針分別用來給出該結(jié)點(diǎn)左孩子和右孩子所在的鏈結(jié)點(diǎn)的存儲地址
    2021-11-11
  • C++面試八股文之了解auto關(guān)鍵字

    C++面試八股文之了解auto關(guān)鍵字

    這篇文章主要為大家介紹了C++面試八股文之了解auto關(guān)鍵字問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Qt實(shí)現(xiàn)拖動(dòng)單個(gè)控件移動(dòng)的示例代碼

    Qt實(shí)現(xiàn)拖動(dòng)單個(gè)控件移動(dòng)的示例代碼

    做慣了靜態(tài)圖,今天來搞一搞動(dòng)態(tài)圖吧!本文將利用Qt實(shí)現(xiàn)拖動(dòng)單個(gè)控件移動(dòng)效果,文中的示例代碼講解詳細(xì),感興趣的可以動(dòng)手嘗試一下
    2022-06-06

最新評論

宝应县| 德州市| 花垣县| 麟游县| 墨竹工卡县| 高青县| 廊坊市| 莲花县| 疏附县| 丰台区| 改则县| 芦溪县| 连云港市| 葫芦岛市| 孝义市| 江华| 五河县| 萍乡市| 突泉县| 比如县| 黔西县| 报价| 安福县| 白银市| 罗江县| 唐海县| 钦州市| 离岛区| 东阿县| 金昌市| 长垣县| 隆昌县| 拉孜县| 鄂托克旗| 师宗县| 临沭县| 额济纳旗| 邹平县| 成都市| 荥阳市| 岳西县|