Freeing a pointer

Newbie Member
11Jun2008,17:19   #1
Plfgoa's Avatar
Hi,

If a function is returning a pointer and if that pointer was returned by a malloc function , how do I free that pointer ? If I run valgrind , it will show memory leak since "k" was not freed. How do I free "k" in following ?

Example:

int * sum(int a, int b)
{
int sum;
int *k=malloc(sizeof(int));
sum=a+b;
k=∑
return k;
}

Thank you.

-PLF
Light Poster
11Jun2008,19:38   #2
gunshot08's Avatar
you use the free() function

int * sum(int a, int b)
{
int sum;
int *k=malloc(sizeof(int));
sum=a+b;
k=∑
return k;
free(k);
}
Newbie Member
11Jun2008,20:10   #3
Plfgoa's Avatar
Hi,

Thanks for the response . Just wanted to know if one uses free() after a return statement will free() ever get called ?

Thanks.

-PLF