¿Cómo implementar una copia profunda de la estructura en lenguaje C?
memcpy(amp; sortbook[j], ampbook[I], sizeof(struct book);
Necesitas #include
Prototipo funcional
p>
void *memcpy(void *dest, const void *src, size_t n);
Función
Constantemente n la dirección señalada por src como la dirección inicial Los datos del byte se copian en el espacio señalado por destino como dirección inicial
Archivo de encabezado
# include ltstring.h gt
Valor de retorno.
p>La función devuelve un puntero al destino.
Explicación
El área de memoria indicada por 1.source y destin no puede superponerse. puntero a destin.
2. En comparación con strcpy, memcpy no finalizará cuando encuentre "\0", pero definitivamente completará la copia de n bytes para los que
se usa. memoria. Copiar, puede usarlo para copiar objetos de cualquier tipo de datos y puede especificar la longitud de los datos de la copia;
Ejemplo:
char a[100], b [50];
p>
memcpy(b,a,sizeof(b)); // Tenga en cuenta que si se usa sizeof(a), la dirección de memoria de B se desbordará
Strcpy sólo puede copiar cadenas cuando Finalice la copia cuando encuentre "\0" ejemplo:
char a[100], b[50]; strcpy (a, b);
3. Si la matriz de destino ya tiene datos, los datos originales se sobrescribirán (hasta n) después de ejecutar memcpy(). la dirección de la matriz de destino debe aumentarse después de cada ejecución de memcpy. La dirección de los datos que se agregarán
//Tenga en cuenta que el origen y el destino no son necesariamente matrices y se puede utilizar cualquier espacio legible y grabable. .