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.將一個字符串數據複製到一塊內存。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
相關文章
相關標籤/搜索