亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

詳解C語言中的memset()函數

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

C語言memset()函數:將內存的前n個字節設置為特定的值
頭文件:

#include <string.h>

memset() 函數用來將指定內存的前n個字節設置為特定的值,其原型為:

  void * memset( void * ptr, int value, size_t num );

參數說明:
ptr 為要操作的內存的指針。
value 為要設置的值。你既可以向 value 傳遞 int 類型的值,也可以傳遞 char 類型的值,int 和 char 可以根據 ASCII 碼相互轉換。
num 為 ptr 的前 num 個字節,size_t 就是unsigned int。

【函數說明】memset() 會將 ptr 所指的內存區域的前 num 個字節的值都設置為 value,然后返回指向 ptr 的指針。

memset() 可以將一段內存空間全部設置為特定的值,所以經常用來初始化字符數組。例如:

char str[20];memset(str, '/0', sizeof(str)-1);

【返回值】返回指向 ptr 的指針。

注意:參數 value 雖聲明為 int,但必須是 unsigned char,所以范圍在0 到255 之間。

范例:
復制純文本新窗口

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){  // 不可以聲明為 char *str = "http://c.biancheng.net";  char str[] = "http://c.biancheng.net";  memset(str, '-', 7);  puts(str);  system("pause");  return EXIT_SUCCESS;}

執行結果:

-------c.biancheng.net

memmove 和 memcpy的區別
memcpy和memmove()都是C語言中的庫函數,在頭文件string.h中,作用是拷貝一定長度的內存的內容,原型分別如下:

void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count); 

他們的作用是一樣的,唯一的區別是,當內存發生局部重疊的時候,memmove保證拷貝的結果是正確的,memcpy不保證拷貝的結果的正確。

第一種情況下,拷貝重疊的區域不會出現問題,內容均可以正確的被拷貝。
第二種情況下,問題出現在右邊的兩個字節,這兩個字節的原來的內容首先就被覆蓋了,而且沒有保存。所以接下來拷貝的時候,拷貝的是已經被覆蓋的內容,顯然這是有問題的。
實際上,memcpy只是memmove的一個子集。

二者的c語言實現很簡單,有興趣的朋友可以去看看。在實際情況下,這兩個函數都是用匯編實現的。

memmove在copy兩個有重疊區域的內存時可以保證copy的正確,而memcopy就不行了,但memcopy比memmove的速度要快一些,如:
char s[] = "1234567890";
char* p1 = s;
char* p2 = s+2;
memcpy(p2, p1, 5)與memmove(p2, p1, 5)的結果就可能是不同的,memmove()可以將p1的頭5個字符"12345"正確拷貝至p2,而memcpy()的結果就不一定正確了

memcpy()、 memmove()和memccpy()

    這三個函數的功能均是將某個內存塊復制到另一個內存塊。前兩個函數的區別在于它們處理內存區域重疊(overlapping)的方式不同。第三個函數的功能也是復制內存,但是如果遇到某個特定值時立即停止復制。
    對于庫函數來說,由于沒有辦法知道傳遞給他的內存區域的情況,所以應該使用memmove()函數。通過這個函數,可以保證不會出現任何內存塊重疊問題。而對于應用程序來說,因為代碼“知道”兩個內存塊不會重疊,所以可以安全地使用memcpy()函數。

關于memmove的實現:

void *mymemmove(void *dest, const void *src, size_t n){  char temp[n];  int i;  char *d = dest;  const char *s = src;  for (i = 0; i < n; i++)     temp[i] = s[i];  for (i = 0; i < n; i++)     d[i] = temp[i];  return dest;}

關于memcpy的實現:

void *mymemcpy(void *dest, const void *src, size_t n){  char *d = dest;  const char *s = src;  int *di;  const int *si;  int r = n % 4;    while (r--)    *d++ = *s++;  di = (int *)d;  si = (const int*)s;  n /= 4;  while (n--)    *di++ = *si++;  return dest;}

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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成+人+综合+亚洲欧美丁香花| 欧美与欧洲交xxxx免费观看| 亚洲欧美国产一本综合首页| 亚洲精品国产精品自产a区红杏吧| 一本久久综合亚洲鲁鲁| 日本不卡视频在线播放| 日韩av有码在线| 欧美性精品220| 久久99国产精品自在自在app| 日本精品性网站在线观看| 国产成人精品视频| 亚洲欧美日韩精品久久奇米色影视| 国产亚洲精品一区二555| 欧美日韩中文字幕在线视频| 亚洲国产欧美久久| 亚州av一区二区| 亚洲欧美精品一区| 欧美日韩国产va另类| 欧美午夜精品久久久久久人妖| 色噜噜狠狠狠综合曰曰曰88av| 欧美在线免费观看| 精品亚洲男同gayvideo网站| 亚洲黄色av网站| 91网在线免费观看| 欧美色视频日本版| 国产成人精品一区| 成人国产在线激情| 亚洲精品久久7777777| 在线性视频日韩欧美| 日韩精品高清在线| 亚洲欧美国产高清va在线播| 91深夜福利视频| 亚洲xxxxx| 亚洲高清不卡av| 国产成人精品av在线| 久久久国产精彩视频美女艺术照福利| 欧美一级片久久久久久久| 91在线观看免费高清完整版在线观看| 青青草原成人在线视频| 欧美成人中文字幕| 色综合91久久精品中文字幕| 亚洲成人av在线播放| 欧美激情2020午夜免费观看| 91精品国产自产在线老师啪| 亚洲第一中文字幕| 最近2019中文字幕第三页视频| 精品久久香蕉国产线看观看亚洲| 欧美疯狂做受xxxx高潮| 欧美日韩国产一区二区| 欧美国产日韩视频| 日韩av在线影院| 欧美性xxxxxxx| 91在线观看欧美日韩| 国产精品久在线观看| 国产午夜一区二区| 欧美尺度大的性做爰视频| 欧美成人国产va精品日本一级| 欧美与欧洲交xxxx免费观看| 欧美成人sm免费视频| 亚洲精品自产拍| 国产精品一区二区在线| 97精品国产97久久久久久| 日韩av三级在线观看| 国产成人免费av| 亚洲精品色婷婷福利天堂| 日韩电影中文字幕在线观看| 国产精品观看在线亚洲人成网| 久久亚洲精品网站| 国产精品一区二区性色av| 国产欧美精品久久久| 成人国产在线视频| 久久国产精品免费视频| 久久精品国产亚洲一区二区| 欧美成人自拍视频| 国产精选久久久久久| 国产精品久久久久久久久久尿| 亚洲男人天堂2024| 国产精品va在线播放| 黑人精品xxx一区一二区| 欧美高清视频免费观看| 欧美俄罗斯性视频| 精品女厕一区二区三区| 欧美亚州一区二区三区| 最近2019中文字幕在线高清| 国产精品久久久久久久久影视| 中文字幕日韩欧美| 在线观看欧美视频| 日韩精品免费一线在线观看| 亚洲日本欧美中文幕| 成人高清视频观看www| 91久久精品视频| 精品成人69xx.xyz| 国产视频在线一区二区| 国产69精品99久久久久久宅男| 日韩中文字幕网站| 欧美日韩美女在线观看| 亚洲一级黄色片| 狠狠色狠狠色综合日日五| 亚洲欧洲免费视频| 精品国内自产拍在线观看| 亚洲午夜精品视频| 海角国产乱辈乱精品视频| 日韩av免费看网站| 国产婷婷97碰碰久久人人蜜臀| 中文字幕在线看视频国产欧美| 国产69久久精品成人看| 日本欧美黄网站| 久久精品99久久久久久久久| 疯狂蹂躏欧美一区二区精品| 亚洲电影免费观看高清完整版在线| 亚洲福利在线播放| 欧美另类99xxxxx| 日韩欧美大尺度| 日韩暖暖在线视频| 秋霞av国产精品一区| 8050国产精品久久久久久| 亚洲精选在线观看| 国产精品海角社区在线观看| 日韩免费在线视频| 国产精品亚洲激情| 91亚洲一区精品| 欧美激情欧美激情在线五月| 亚洲香蕉在线观看| 日韩在线高清视频| 狠狠久久五月精品中文字幕| 亚洲欧美日韩天堂一区二区| 一本色道久久综合狠狠躁篇的优点| 国产日韩在线观看av| 在线免费看av不卡| 精品二区三区线观看| 国产精品69精品一区二区三区| www.亚洲天堂| 欧洲成人免费aa| 亚洲新中文字幕| 亚洲精品丝袜日韩| 福利视频导航一区| 国产日韩欧美中文在线播放| 精品国产精品三级精品av网址| 国产精品久久久久久久久久久不卡| 日韩高清电影好看的电视剧电影| 亚洲欧美国产精品久久久久久久| 91av在线播放视频| 主播福利视频一区| 97国产在线观看| 国产色婷婷国产综合在线理论片a| 日韩精品久久久久| 午夜精品久久久久久久男人的天堂| 久久亚洲国产精品成人av秋霞| 97在线看福利| 26uuu另类亚洲欧美日本老年| 久久久国产成人精品| 日本成人激情视频| 国内精品久久久久影院优| 欧美在线精品免播放器视频| 久久夜精品va视频免费观看| 午夜精品免费视频| 97视频色精品| 日韩在线观看免费| 亚洲欧洲偷拍精品| 日韩av一区在线| 国产一区二区三区网站| 国产精品福利无圣光在线一区| 日韩成人av网址| 久久精品中文字幕免费mv|