Estoy tratando de entender las diferencias/desventajas de strcpy y strncpy. Puede alguien por favor ayuda:strcpy cuando el buffer de dest es más pequeño que el buffer de src
void main()
{
char src[] = "this is a long string";
char dest[5];
strcpy(dest,src) ;
printf("%s \n", dest);
printf("%s \n", src);
}
La salida es:
this is a long string
a long string
PREGUNTA: No entiendo, ¿cómo consiguió modificar la picadura fuente. De acuerdo con la explicación, strcpy debe mantener la copia hasta que se encuentra con un '\ 0', por lo que hace, pero ¿cómo es que "cadena src' Se modificó.
Por favor explique.
Esto se conoce como buffer Overun. – lsalamon
Este problema de desbordamiento de búfer ilustra por qué debe elegir usar strncopy sobre strcpy. –
No pude reproducir su código. Obtengo 'tring' en la matriz de dest. – Spidey