欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:開發(fā)語言 C語言內(nèi)存函數(shù)

柚子快報邀請碼778899分享:開發(fā)語言 C語言內(nèi)存函數(shù)

http://yzkb.51969.com/

memcpy使用和模擬實現(xiàn)

strcpy是對字符串進(jìn)行拷貝的函數(shù),而memcpy是針對內(nèi)存塊進(jìn)行拷貝的函數(shù)

void * memcpy(void * destination ,?const void * source , size_t num);

num是字節(jié)數(shù)

關(guān)于memcpy的使用:

1.函數(shù)memcpy從source的位置開始向后復(fù)制num個字節(jié)的數(shù)據(jù)到destination指向的內(nèi)存位置。

2.這個函數(shù)在遇到'\0‘時不會停下來。

3.如果source和destination有任何的重疊,復(fù)制的結(jié)果都是未定義的。

模擬實現(xiàn)

#include

#include

#include

void* my_memcpy(void * dest,void * src,size_t num)

{

void* ret = dest;

int i = 0;

assert(dest && src);

while (num--)

{

*(char*)dest = *(char*)src;

src = (char*)src + 1;//((char*)src)++;

dest = (char*)dest + 1;//((char*)dest)++;

}

return ret;

}

int main()

{

int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };

int arr2[20] = { 0 };

my_memcpy(arr2, arr1, 20);

int i = 0;

for (i = 0; i < 20; i++)

{

printf("%d ", arr2[i]);

}

return 0;

}

運(yùn)行結(jié)果與上方相同。

memmove使用和模擬實現(xiàn)

void * memmove (void * destination , const void * source , size_t num);

memmove的使用

和memcpy的差別就是memmove函數(shù)處理的源內(nèi)存塊和目標(biāo)內(nèi)存塊是可以重疊的。

如果原空間的目標(biāo)空間出現(xiàn)重疊,就得使用memove函數(shù)處理。

memmove函數(shù)拷貝完成后,會返回目標(biāo)空間的起始地址。

memmove函數(shù)的模擬

當(dāng)dest>=scr時,應(yīng)該選擇從后向前;

當(dāng)dest

#include

#include

#include

void* my_memmove(void* dest, const void* src, size_t num)

{

assert(dest && src);

void* ret = dest;

if (dest < src)//從前向后

{

while (num--)

{

*(char*)dest = *(char*)src;

dest = (char*)dest + 1;

src = (char*)src + 1;

}

}

else

{

while (num--)//從后向前

{

*((char*)dest+num)=*((char*)src + num);

}

}

return ret;

}

int main()

{

int arr[] = { 1,2,3,4,5,6,7,8,9,10 };

memmove(arr + 2, arr, 5 * sizeof(int));

int i = 0;

for (i = 0; i < 10; i++)

{

printf("%d ", arr[i]);

}

return 0;

}

memset函數(shù)的使用

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

以字節(jié)為單位設(shè)置value

memcmp函數(shù)的使用

int memcmp(const void * ptr1, const void * ptr2 , size_t num );

柚子快報邀請碼778899分享:開發(fā)語言 C語言內(nèi)存函數(shù)

http://yzkb.51969.com/

精彩文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19029095.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄