1. Introdução ao memcpy ()
1.1 Protótipo de função
void *memcpy(void *destin, void *source, unsigned n);
1.2 Parâmetros
- destin aponta para o array alvo usado para armazenar o conteúdo copiado, e o tipo é convertido para um ponteiro void *.
- source- aponta para a fonte de dados a ser copiada, e o tipo é convertido em um ponteiro void *.
- n - o número de bytes a serem copiados.
1.3 Função
Copia n bytes da posição inicial do endereço de memória apontado pela fonte fonte para a posição inicial do endereço de memória apontado pelo destino destino.
1.4 Arquivos de cabeçalho
#include <string.h>
1.5 Valor de retorno
Esta função retorna um ponteiro para o destino da área de armazenamento de destino.
2. Uso de Memcpy ()
Se o próprio destino do array alvo possui dados, após executar memcpy (), os dados originais serão sobrescritos (no máximo n). Se você deseja anexar dados, após cada execução de memcpy, você precisa aumentar o endereço da matriz de destino para o endereço onde deseja anexar os dados.
O código específico é o seguinte:
#include <stdio.h>
#include <string.h>
int main(void)
{
char data[7]="memcpy";
printf("%s\n",data);
char cdata[20]={
0};
memcpy(cdata,data,6);
printf("%s\n",cdata);
memcpy(cdata,"123456",6);
printf("%s\n",cdata);
memcpy(&cdata[6],"78910",6); //追加数据
printf("%s\n",cdata);
return 0;
}
O resultado da corrida é o seguinte:
memcpy
memcpy
123456
12345678910