【发布时间】:2015-08-19 13:33:39
【问题描述】:
我在书中了解到,如果我需要从函数返回一个指针,我使用malloc() 并从堆中获取内存。我想知道如何free() 在函数之后分配内存。
可以按照我在以下代码中所做的操作来释放该内存吗?如果不正确,函数后释放内存的正确方法是什么?
int *Add_them_up (int *x, int *y)
{
int *p = (int *) malloc(sizeof (int));
*p = *x + *y;
return p;
}
int main ()
{
int c = 3;
int d = 4;
int *presult = NULL;
presult = Add_them_up (&c, &d);
printf ("the result of adding is:%d\n", *presult);
free (presult);
return 0;
}
【问题讨论】:
-
请see why not to cast
malloc()和C中的family返回值。 -
@shinhwa 你在这里遗漏了一个严重的问题。
-
@SouravGhosh 你忽略了一个严重的问题,我的朋友。
-
@Sumeet 请赐教。
-
@SouravGhosh 查看我的回答。
标签: c pointers memory-management free