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-03Vscode搭建遠(yuǎn)程c開發(fā)環(huán)境的圖文教程
很久沒有寫C語言了,今天抽空學(xué)習(xí)下C語言知識,接下來通過本文給大家介紹Vscode搭建遠(yuǎn)程c開發(fā)環(huán)境的詳細(xì)步驟,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-11-11