+ 1
Alguien sabe como hacer que una funcion retorne un array, en lenguaje C
5 Réponses
+ 11
int* ret_arr()
{
int * arr = (int *)malloc(10 * sizeof(int));
for (int i = 0; i < 10; i++) arr[i] = 0;
return arr;
}
+ 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>
+ 1
gracias :)
+ 1
te recomiendo que uses int main() en lugar de void main()
0
Si, ademas trato de una funcion agregar los valores a esa memoria dinamica, para despues usarla en el void main()