Colección de citas famosas - Slogan de motivación - ¿Cómo implementar una copia profunda de la estructura en lenguaje C?

¿Cómo implementar una copia profunda de la estructura en lenguaje C?

Puedes usar memcpy. Por ejemplo, puede crear una estructura de libro de clasificación [1000] para contener los resultados de la clasificación y asignar el elemento I del libro al elemento J del libro de clasificación.

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