+ 1

Alguien sabe como hacer que una funcion retorne un array, en lenguaje C

12th Aug 2017, 12:29 AM
Jenny Alava BolaƱos
Jenny Alava BolaƱos - avatar
5 Answers
+ 11
int* ret_arr() { int * arr = (int *)malloc(10 * sizeof(int)); for (int i = 0; i < 10; i++) arr[i] = 0; return arr; }
12th Aug 2017, 1:06 AM
Hatsy Rei
Hatsy Rei - avatar
+ 2
gracias :)
12th Aug 2017, 1:18 AM
Jenny Alava BolaƱos
Jenny Alava BolaƱos - avatar
+ 2
int* array(int size){ return calloc(size,sizeof(int)); } hace todo el trabajo de la función de Hatsy y ademÔs te permite especificar el tamaño del array, aunque no es necesario hacer una función, simplemente poner int* miarray = calloc(5,sizeof(int)); el calloc inicializa el array con ceros el malloc también busca memoria dinÔmica pero no la inicializa, por lo que te puede dar basura si lo usas sin modificar ell realloc ademÔs copia la memoria del ya existente y retorna el array con el nuevo tamaño, tiene la sintaxis realloc(antiguoArray,tamanoEnBytes); recuerda que el tamaño es en bytes, por lo que debes multiplicar las unidades que quieres que tenga el array por el tamaño del tipo de dato recuerda que debes incluir <stdlib.h>
12th Aug 2017, 2:08 AM
AndrƩs04_ve
AndrƩs04_ve - avatar
+ 1
Si, ademas trato de una funcion agregar los valores a esa memoria dinamica, para despues usarla en el void main()
12th Aug 2017, 2:10 AM
Jenny Alava BolaƱos
Jenny Alava BolaƱos - avatar
+ 1
te recomiendo que uses int main() en lugar de void main()
12th Aug 2017, 2:12 AM
AndrƩs04_ve
AndrƩs04_ve - avatar