SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Rataman en Martes 4 de Mayo de 2004, 18:36

Título: Fflush()
Publicado por: Rataman en Martes 4 de Mayo de 2004, 18:36
Mi problema es el siguiente: Al ejecutar muchas veces una misma funcion, me da un error de memoria, y creo k es por espacio insuficiente de pila, ¿no hay alguna funcion k libere dicho espacio?

Creo k con fflush() se puede pero no encuentro el parametro k hay k introducir para utilizarla de forma similar al fflush(stdin)
Título: Re: Fflush()
Publicado por: JuanK en Martes 4 de Mayo de 2004, 20:24
no,
lo de liberar la memoria loo debes hacer tu,
cada vez que dejes de utilizar un espacio de memoria , por ejemplo uno llmado con malloc, deberas liberarlo:

ejemplo
Código: Text
  1.  
  2.  
  3. void memp()
  4. {
  5.   char *p;
  6.   p=(char *)malloc(50);
  7.   ...
  8.   ...
  9.   ..
  10.   ..
  11.   ..
  12.   ..
  13.  
  14. }
  15.  
  16.  
si lo dejas asi cada vez que utilices memp() estaras reservando un bloque de memoria diferente sin liberarlo nunca.. pero asi esto se soluciona:

Código: Text
  1.  
  2.  
  3. void memp()
  4. {
  5.   char *p;
  6.   p=(char *)malloc(50);
  7.   ...
  8.   ...
  9.   ..
  10.   ..
  11.   ..
  12.   ..
  13.   free(p);
  14. }
  15.  
  16.  
Título: Re: Fflush()
Publicado por: Rataman en Martes 4 de Mayo de 2004, 21:43
Gracias, ya he solucionado mi problema   :lol: