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