memcpy是memory copy的縮寫,意爲內存複製,在寫C語言程序的時候,咱們經常會用到它。它的函原型以下:函數
void *memcpy(void *dest, const void *src, size_t n);
它的功能是從src的開始位置拷貝n個字節的數據到dest。若是dest存在數據,將會被覆蓋。memcpy函數的返回值是dest的指針。memcpy函數定義在string.h頭文件裏。指針
1.將一個字符串數據複製到一塊內存。code
#include <stdio.h> #include <string.h> #include <stdlib.h> #define N 10 int main(void) { char* target=(char*)malloc(sizeof(char)*N); memcpy(target,"0123456789",sizeof(char)*N); puts(target); free(target); return 0; }
編譯,運行,將輸出:0123456789
2.將一個字符串數據複製到一塊內存的指定位置。內存
#include <stdio.h> #include <string.h> #include <stdlib.h> #define N 10 int main(void) { char* target=(char*)malloc(sizeof(char)); for(int i=0;i<N;i++){ memcpy(target+i,"a",sizeof(char)); } puts(target); free(target); return 0; }
編譯,運行,將輸出:aaaaaaaaaa
3.數據覆蓋字符串
#include <stdio.h> #include <string.h> #include <stdlib.h> #define N 10 int main(void) { char* target=(char*)malloc(sizeof(char)*N); memcpy(target,"0123456789",sizeof(char)*N); puts(target); memcpy(target,"aaaaa",sizeof(char)*(N-5)); puts(target); free(target); return 0; }
編譯,運行,將輸出:get
0123456789 aaaaa56789