volna pamet

Martin Horcicka mhor5157 at ss1000.ms.mff.cuni.cz
Mon Jul 19 16:27:24 CEST 1999


Ahoj,

nevim, zda nejde jen o nejakou vykonstruovanou ukazku, ale jestli je tohle
opravdu soucasti nejakeho programu, mam z toho podivny pocit.

> /* ZACATEK PRIKLADU */
> char **test ( char **str ) {
>  var *buff=NULL;
> 
>  if((buff=(char *) malloc(1024))!=NULL) {
>    strcpy(buff, "A");
>    if(str!=NULL) {

Pritomnost predchazejici podminky nasvedcuje tomu, ze muze nastat situace
kdy nebude pravdiva, ale kdyz se to stane, dojde k zapomenuti odkazu na
alokovanou pamet -- mozna je to jedno z mist, ktere hledas.

>      free(*str);
>      *str=buff;     /* toto myslim prepisovanim pointeru */
>    }
>  }
> 
>  return str;
> }
> /* KONEC PRIKLADU */

Vhodnost takovychto technik je nejspis trochu diskutabilni, ale na to ses
neptal.

Martin




More information about the Users-l mailing list