c免费问题

use*_*033 0 c memory free

这可以在c中做吗?

int *i;
// do stuff

i = NULL;

i = (int *) some_func();
// do stuff

if (i != NULL)
    free(i);

i = NULL;

// do stuff
i = (int *) some_func();
// do stuff
if (i != NULL)
    free(i);

i = NULL;
Run Code Online (Sandbox Code Playgroud)

edg*_*eis 6

1)这取决于你与some_func()的合约.如果some_func希望你在其返回值上调用free(),那么你的代码就可以了.

2)在C中重用变量是好的,尽管不是非常优雅.通常最好将不同的变量用于不同的目的.从性能和内存使用的角度来看,它完全是一回事.