Red de conocimiento del abogados - Respuesta jurídica de la empresa - ¿Cuál es la diferencia entre la función strcpy y la función memcpy? ¿A qué cuestiones se debe prestar atención al usar cada una?

¿Cuál es la diferencia entre la función strcpy y la función memcpy? ¿A qué cuestiones se debe prestar atención al usar cada una?

Strcpy y memcpy se utilizan para copiar un dato continuo de una memoria a otra. La diferencia es que los indicadores de terminación son diferentes.

strcpy(a,

b) copia el contenido de b a a, luego copia el contenido de b 1 a a 1, y así sucesivamente, hasta que el contenido de b i sea ' \0'. Las cosas con las que hay que tener cuidado son 1: Asegúrese de que b sea una cadena que termina en '\0' 2: Asegúrese de que haya suficiente memoria libre al comienzo de a. Normalmente es mejor utilizar strncpy(a,

b,

c). En este caso, la longitud de los datos copiados no supera los c bytes.

memcpy(a,

b,

c) copia el contenido de c bytes comenzando desde b hasta a. En comparación con strcpy, memcpy seguramente copiará c bytes. Así que asegúrese de que b comience con c bytes de datos válidos y a comience con c bytes de espacio de memoria.

Cuidado: memcpy no tiene un buen soporte para copiar memoria superpuesta. La memoria superpuesta se refiere a

char

a[10], memcpy(a,

a

3,

5) De esta manera, los datos de origen son de un 3 a un 7, la posición de destino es de un a un 5, hay duplicados.

Si deseas sobrescribir, puedes usar memmove.