C語言中memcpy 函數的用法詳解
更新時間:2017年07月05日 15:06:06 作者:景初淺行
這篇文章主要介紹了C語言中memcpy 函數的用法詳解的相關資料,需要的朋友可以參考下
C語言中memcpy 函數的用法詳解
memcpy(內存拷貝函數)
c和c++使用的內存拷貝函數,memcpy函數的功能是從源src所指的內存地址的起始位置開始拷貝n個字節(jié)到目標dest所指的內存地址的起始位置中。
void* memcpy(void* destination, const void* source, size_t num); void* dest 目標內存 const void* src 源內存 size_t num 字節(jié)個數
庫中實現的memcpy函數
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;
}

模擬實現memcpy函數
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;
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
C++?Cartographer源碼中關于MapBuilder的聲明與構造
這篇文章主要介紹了C++?Cartographer源碼中關于MapBuilder的聲明與構造,前面已經談到了Cartographer中添加軌跡的方法和傳感器的數據流動走向。在添加軌跡的時候,除了添加位姿估計器還有采樣器,訂閱回調函數之外,最重要的是通過map_builder_bridge添加了一條軌跡2023-03-03

