C語言memcpy函數的用法


介紹

memcpy是memory copy的縮寫,意為內存復制,在寫C語言程序的時候,我們常常會用到它。它的函原型如下:

void *memcpy(void *dest, const void *src, size_t n);

它的功能是從src的開始位置拷貝n個字節的數據到dest。如果dest存在數據,將會被覆蓋。memcpy函數的返回值是dest的指針。memcpy函數定義在string.h頭文件里。

例子

1.將一個字符串數據復制到一塊內存。

#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;
}

編譯,運行,將輸出:

0123456789
aaaaa56789


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM