Abaixo, falo principalmente sobre os três tipos de memcpy, strcpy, string :: copy
Cópia da memória memcpy
A cópia da memória de interceptação não verifica o caractere final da string '\ 0'
Resultado Após a
cópia, caracteres ilegíveis aparecerão no final da string.
Solução Ao
solicitar memória, solicite mais um byte de memória para garantir que o final da string seja copiado nela.
String copy strcpy
strcpy é uma função dedicada à cópia de seqüências de caracteres. A diferença do memcpy é que ele detectará o caractere final '\ 0', portanto não há necessidade de fazer aplicativos extras ao solicitar memória.
Sintaxe / protótipo:
char * strcpy (char * strDestination, const char * strSource);
Descrição do parâmetro:
strDestination: destino string.
strSource: string de origem.
strcpy () copiará a string apontada por strSource para strDestination.
Você deve garantir que strDestination seja grande o suficiente para acomodar strSource, caso contrário, isso causará um erro de estouro.
método de string copy string :: copy
Interceptação e resultado
Como a função finalmente chamada por cópia aqui ainda é memcopy, portanto a interceptação é a mesma.Depois que a cópia for concluída, uma sequência de caracteres ilegíveis será trazida para trás da sequência
Solução
Após a cópia, adicione o caractere final '\ 0'.