Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2006, 01:07
Avatar de jam1138
jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 7 meses
Puntos: 102
Retornar un arreglo en C

No encuentro --o no sé mejor dicho -- la manera de lograr que una función regrese un arreglo y asignarlo a otro arreglo. ¿Cómo debe de hacerse?.

Para pruebas creé el siguiente código:
Código:
#include <stdio.h>

char invierte(char arreglo[8]); /* Función que invierte el orden de un arreglo */

int main(void) {
    char original[8]= "Arreglo"; /* Arreglo original */
    char invertida[8]; /* Arreglo donde se asignará lo devuelto por la función */

    *invertida= invierte(original); /* Llamada de la función */
    
    printf("Resultado: %s", invertida); /* Imprimir el resultado [Solo imprime 'o'] */

return 0;    
}

char invierte(char entrada[8]) {
     int i, j=6;
     char salida[8]; /* Almacena el arreglo invertido */
     
     for(i=0; i<7; i++) {
          salida[i]= entrada[j]; /* Invertiendo el órden */
          j--;
     }
     salida[i]= '\0';
     
     printf("Prueba: %s \n", salida); /* Función correcta */

return *salida; /* Devolvemos el arreglo resultante */
}
La función invierte() es la que debe devolver el arreglo y asignarlo a la variable invertida.

El código lo dejo a cómo conseguí mejores resultados después de varios intentos... actualmente la variable inversa resullta con el primer elemento del arreglo salida... solo como dato quizá no sea la maneracorrecta.

Es bienvenido cualquier comentario.
(PD: encontré bastantes referencias de cómo pasarlo como parámetro más nada que me ayudase sobre su retorno...)
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"