Al principio, cuando empezaba a programar, yo me quejaba mucho de esa tonta manía de C que no me dejaba devolver arrays como resultado de una función.
Aunque al final, devolver arrays es una tontería, gasta memoria, gasta tiempo y termina siendo más fácil solucionarlo todo con un puntero.
Pero bueno, si realmente queremos devolver un array, siempre podemos meterlo dentro de un registro. Probando con una cadena de caracteres:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <stdio.h> #include <string.h> typedef struct { char cadena[1000]; } t_array; t_array devuelvo() { t_array otroarr; printf("\nDirección de cadena: %X\nCadena: %s\n", &otroarr, otroarr.cadena); strcpy(otroarr.cadena, "ESTE STRING APARECE VARIAS VECES EN EL VOLCADO DE MEMORIA"); printf("\nDirección de cadena: %X\nCadena: %s\n", &otroarr, otroarr.cadena); return otroarr; } int main() { t_array array; array=devuelvo(&mem); printf("\nDirección de cadena: %X\nCadena: %s\n", &array, array.cadena); } |






Pingback: Bitacoras.com /
Yo soy partidario de hacer eso con un puntero.
Mandas un puntero al array y a correr ^^
Una vez implementé algo parecido pero que devolvía estructuras. La gracia estaba en que podía ser cualquier tipo de estructura (tenía 9 o 10 en total). Al final lo solucioné usando los temidos punteros a void.
Yo también soy partidario de hacerlo con punteros, como digo en el post… pero sabes que cuando alguien me dice:
«¿y no se puede devolver un array como resultado de una función?»
tras advertirle lo de los punteros, le digo, pero se puede!
Pues a mí los punteros a void me encantan, hay que tener un poco de cuidado, pero mira, funcionan… luego en C++ somos más elegantes y usamos templates 🙂
nice blog! its interesting. thank you for sharing.
Guide to NBA Betting for Beginners
Your blog provided us with valuable information. I am looking forward to read more blog posts from here keep it up!!
David Haller Black Coat
Excellent article. The writing style which you have used in this article is very good and it made the article of better quality.
Blade Runner Coat