用 C 編寫自己的 memcpy()
此處我們來了解如何用 C 實現 memcpy() 函式。memcpy() 函式用於從一個位置複製資料塊到另一個位置。memcpy() 的語法如下所示 −
void * memcpy(void * dest, const void * srd, size_t num);
要實現我們自己的 memcpy,必須將給定地址型別轉換為 char*,然後逐位元組地從源複製資料到目標。查閱以下程式碼即可更好地理解。
示例
#include<stdio.h>
#include<string.h>
void custom_memcpy(void *dest, void *src, size_t n) {
int i;
//cast src and dest to char*
char *src_char = (char *)src;
char *dest_char = (char *)dest;
for (i=0; i<n; i++)
dest_char[i] = src_char[i]; //copy contents byte by byte
}
main() {
char src[] = "Hello World";
char dest[100];
custom_memcpy(dest, src, strlen(src)+1);
printf("The copied string is %s
", dest);
int arr[] = {10, 20, 30, 40, 50, 60, 70, 80, 90};
int n = sizeof(arr)/sizeof(arr[0]);
int dest_arr[n], i;
custom_memcpy(dest_arr, arr, sizeof(arr));
printf("The copied array is ");
for (i=0; i<n; i++)
printf("%d ", dest_arr[i]);
}輸出
The copied string is Hello World The copied array is 10 20 30 40 50 60 70 80 90
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP