Métodos de cópia de sequência e armadilhas

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'.

Publicado 181 artigos originais · Gosto 13 · Visitantes 10.000 ou mais

Acho que você gosta

Origin blog.csdn.net/qq_43461641/article/details/105075700
Recomendado
Clasificación