Hola chicos, tengo esa duda. Ejemplo:
Si tenemos un array a[0...n] y quiero asignar la mitad del mismo en un array b[0..n/2], ¿existe una función que lo haga, o tengo que crearme una función por mi cuenta con un ciclo?
Puedes usar memcpy. Hace justamente lo que pides.
Ejemplo:
#include <stdio.h>
#include <string.h>
int main() {
int array_origen[8] = {1, 2, 3, 4, 5, 6, 7, 8};
int array_destino[4] = {0};
for(int i = 0; i < 4; ++i)
printf("array_destino[%i] = %i\n", i, array_destino[i]);
puts("\nCopia del array\n");
memcpy(array_destino, array_origen, sizeof(int) * 4);
for(int i = 0; i < 4; ++i)
printf("array_destino[%i] = %i\n", i, array_destino[i]);
}
Resultado:
Citararray_destino[0] = 0
array_destino[1] = 0
array_destino[2] = 0
array_destino[3] = 0
Copia del array
array_destino[0] = 1
array_destino[1] = 2
array_destino[2] = 3
array_destino[3] = 4
Muy bien!, eso es algo de lo que estaba buscando. Desde ya muy agradecido :-)
Ahora bien, si quiero asignarle la segunda mitad del array o una parte que esté en el medio especificando mediante dos índices, ¿hay alguna función para ello?