C語言中memcpy 函數(shù)的用法詳解
更新時間:2017年07月05日 15:06:06 作者:景初淺行
這篇文章主要介紹了C語言中memcpy 函數(shù)的用法詳解的相關(guān)資料,需要的朋友可以參考下
C語言中memcpy 函數(shù)的用法詳解
memcpy(內(nèi)存拷貝函數(shù))
c和c++使用的內(nèi)存拷貝函數(shù),memcpy函數(shù)的功能是從源src所指的內(nèi)存地址的起始位置開始拷貝n個字節(jié)到目標(biāo)dest所指的內(nèi)存地址的起始位置中。
void* memcpy(void* destination, const void* source, size_t num); void* dest 目標(biāo)內(nèi)存 const void* src 源內(nèi)存 size_t num 字節(jié)個數(shù)
庫中實現(xiàn)的memcpy函數(shù)
struct {
char name[40];
int age;
} person, person_copy;
int main()
{
char myname[] = "Pierre de Fermat";
/* using memcpy to copy string: */
memcpy(person.name, myname, strlen(myname) + 1);
person.age = 46;
/* using memcpy to copy structure: */
memcpy(&person_copy, &person, sizeof(person));
printf("person_copy: %s, %d \n", person_copy.name, person_copy.age);
system("pause");
return 0;
}

模擬實現(xiàn)memcpy函數(shù)
void* My_memcpy(void* dest, const void* src, size_t num)
{
assert(dest);
assert(src);
void* p = dest;
while (num--)
{
*(char*)dest = *(char*)src;
dest = (char*)dest + 1;
src = (char*)src + 1;
}
return p;
}
int main()
{
char dest[56];
char src[] = "abcb xxxx zzzzzzzzzzzzy";
printf("%s\n", My_memcpy(dest, src, strlen(src) + 1));
system("pause");
return 0;
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
C++?Cartographer源碼中關(guān)于傳感器的數(shù)據(jù)傳遞實現(xiàn)
這篇文章主要介紹了C++?Cartographer源碼中關(guān)于傳感器的數(shù)據(jù)傳遞實現(xiàn),前面已經(jīng)談到了Cartographer中添加軌跡的方法和傳感器的數(shù)據(jù)流動走向。發(fā)現(xiàn)在此調(diào)用了LaunchSubscribers這個函數(shù)來訂閱相關(guān)傳感器數(shù)據(jù)2023-03-03
Vscode搭建遠程c開發(fā)環(huán)境的圖文教程
很久沒有寫C語言了,今天抽空學(xué)習(xí)下C語言知識,接下來通過本文給大家介紹Vscode搭建遠程c開發(fā)環(huán)境的詳細步驟,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細,需要的朋友參考下吧2021-11-11

