I have a question about malloc behavior.
There is 2 c file
myTools.c and mainFile.c
mainFile.c is =>
int main(){
int i=1;
char *request="blablabla"//vary in situation.Not static
while(i==1)//forever Loop
{
...
strcpy(response,getFile(request));
...
}
}
myTools.c is ==>
.
.//something else
.
char *getFile(char *request)
{
char *retVal;
...//some tcp request
retVal=malloc(strlen(buffer));
strcpy(retVal,buffer);
..//some char array operations
return retVal;
}
.
.//something else
.
I cant found a way to free the retVal or i wonder that i need to free the retVal ?
It works on uClinux on an m68k embedded platform so memory is limited.
May it couse any memory problem or any memory starvation?
Or effects the program’s runtime behaviour?
You will leak memory every time getFile() is called.
One solution would be: