+ 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 odpowiedzi
+ 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
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
gracias :)
12th Aug 2017, 1:18 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
0
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