a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

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

2020-01-26 14:57:18
字體:
來源:轉載
供稿:網友

C語言memccpy()函數:復制內存中的內容
頭文件:

#include <string.h>

定義函數:

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

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

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

范例

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

執行結果:

memccpy():string(b)

C語言memcpy()函數:復制內存內容(忽略/0)
頭文件:

#include <string.h>

memcpy() 用來復制內存,其原型為:

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

memcpy() 會復制 src 所指的內存內容的前 num 個字節到 dest 所指的內存地址上。

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

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

與 strcpy() 不同的是,memcpy() 會完整的復制 num 個字節,不會因為遇到“/0”而結束。

【返回值】返回指向 dest 的指針。注意返回的指針類型是 void,使用時一般要進行強制類型轉換。


代碼示例:

#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;}

運行結果:

p2 = abcdep3 = abcde

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

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

3) 最后按照好的習慣釋放p2,并把p3也置為NULL是為了防止再次訪問p3指向的內存,導致野指針的發生。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产精品久久免费视频 | 亚洲成色www久久网站瘦与人 | 91av久久 | 精品无码久久久久国产 | 99中文视频 | 久久99蜜桃综合影院免费观看 | 国产91久久精品 | 国产精品福利在线 | 亚洲人人草 | 国内精品一区二区 | 免费一区二区视频 | 伊人精品 | 成人高清视频在线观看 | 欧美一区二区三区免费在线观看 | 人人做人人爽 | 亚洲视频一区在线播放 | 欧美一区,二区 | 久久九九这里只有精品 | 免费看片91 | 黄色av电影 | 亚洲成人第一区 | 国产成人精品久久 | 黄a免费 | 久久国产精品一区二区 | 成人黄色片网站 | 午夜精品在线 | 中文字幕在线看 | 久久视频精品 | 四虎在线看片 | 激情国产 | www.操.com| 日韩中文字幕在线观看 | 国产精品一区二区久久 | 二区在线视频 | 在线视频成人永久免费 | 免费一级片 | 天天看夜夜| 草逼导航 | 成人三级在线 | 亚洲欧美综合精品久久成人 | 青青青久草 |