Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Funcion malloc

Estas en el tema de Funcion malloc en el foro de C/C++ en Foros del Web. Como funciona malloc, podrían darme un ejemplo, como prodría utilizarlo en una función y que parámetros debo usar? Podría crear una función como la siguiente: ...
  #1 (permalink)  
Antiguo 14/03/2014, 19:41
Avatar de brepao_254  
Fecha de Ingreso: marzo-2014
Mensajes: 1
Antigüedad: 10 años, 1 mes
Puntos: 0
Pregunta Funcion malloc

Como funciona malloc, podrían darme un ejemplo, como prodría utilizarlo en una función y que parámetros debo usar?

Podría crear una función como la siguiente:

void funcion (int numero de elementos, tipo de variable)

Código C:
Ver original
  1. void funcion1(int 5,float)

Última edición por brepao_254; 14/03/2014 a las 20:13
  #2 (permalink)  
Antiguo 15/03/2014, 00:10
 
Fecha de Ingreso: marzo-2014
Mensajes: 6
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Funcion malloc

Buenas pues un ejemplo seria este:

n=(struct arbol *)malloc(sizeof(struct arbol));

en el cual estoy reservando memoria en n.
para mayor informacion visita esta pagina:

http://c.conclase.net/librerias/?ansifun=malloc

me a ayudado mucho.
  #3 (permalink)  
Antiguo 15/03/2014, 07:25
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Funcion malloc

"...Podría crear una función como la siguiente:

void funcion (int numero de elementos, tipo de variable)..."

Puedes implementar algo asi pero es una perdida de tiempo:

Código C:
Ver original
  1. void *custom_alloc(size_t sz, int num) {
  2.     return malloc(sz*num);
  3. }
  4.  
  5. void custom_free(void **mem) {
  6.     if(*mem) {
  7.         free(*mem);
  8.         *mem = 0;
  9.     }
  10. }
  11.  
  12.  
  13. int main() {
  14.     int w, q, *nums;
  15.  
  16.     q = 4;
  17.     if((nums = custom_alloc(sizeof(int), q))) {
  18.         for(w = 0; w < q; w++) {
  19.             nums[w] = w;
  20.         }
  21.  
  22.         for(w = 0; w < q; w++) {
  23.             printf("%d\t", nums[w]);
  24.         }
  25.         custom_free(&nums);
  26.     }
  27.  
  28.     return 0;
  29. }

Ya ves que si see puede, pero he tenido que crear y llamar a una funcion extra para hacer lo mismo que te puso @Aeternum90.

En cualquier caso recuerda que para cada malloc necesitas un free. Y recuerda que esto solo vale para C (ok, en c++ tambien vale pero solo cuando no eserves memoria para objetos o 'cosas' que lleven objetos).

Saludos
vosk

Etiquetas: funciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:00.