Asignar a un array, la mitad o una parte de otro array

Iniciado por etcheverrypablol, 25 Marzo 2017, 15:36 PM

0 Miembros y 1 Visitante están viendo este tema.

etcheverrypablol

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?

MAFUS

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

etcheverrypablol

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?