Witam.
Mam problem dotyczacy zwalniania pamieci przydzielanej przez malloc. Free w moim programie nie zwalnia pamieci (przynajmniej tak mi sie wydaje), bo po ponownym przydzieleniu pamieci tablica jest 'wypelniona' tym co zawierala wczesniej. Nie wiem czy kod jest zly czy tak ma byc. Bardzo prosze o rade. Dziekuje. Oto kod:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int hm,k,ile,w;
char znak[1];
char *liczba;
scanf("%d\n",&hm);
for(k=0;k<hm;k++)
{
scanf("%d",&ile);
liczba=malloc(110*sizeof(char));
liczba[0]='1';
scanf("%c",&znak[0]);
for(w=0;w<ile;w++)
{
scanf("%c",&znak[0]);
if((znak[0]=='?')&&(w==0))
{
liczba[0]='9';
}
else
{
if(znak[0]=='?')
{
znak[0]='0';
strcat(liczba,znak);
}
}
}
printf("%s\n",liczba);
free(liczba);
}
return 0;
}