Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: etcheverrypablol en 25 Marzo 2017, 15:36 pm



Título: Asignar a un array, la mitad o una parte de otro array
Publicado por: etcheverrypablol en 25 Marzo 2017, 15:36 pm
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?


Título: Re: Asignar a un array, la mitad o una parte de otro array
Publicado por: MAFUS en 25 Marzo 2017, 15:58 pm
Puedes usar memcpy. Hace justamente lo que pides.

Ejemplo:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main() {
  5.    int array_origen[8] = {1, 2, 3, 4, 5, 6, 7, 8};
  6.    int array_destino[4] = {0};
  7.  
  8.    for(int i = 0; i < 4; ++i)
  9.        printf("array_destino[%i] = %i\n", i, array_destino[i]);
  10.  
  11.    puts("\nCopia del array\n");
  12.    memcpy(array_destino, array_origen, sizeof(int) * 4);
  13.  
  14.    for(int i = 0; i < 4; ++i)
  15.        printf("array_destino[%i] = %i\n", i, array_destino[i]);
  16. }

Resultado:
Citar
array_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


Título: Re: Asignar a un array, la mitad o una parte de otro array
Publicado por: etcheverrypablol en 25 Marzo 2017, 16:05 pm
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?