c 自由提问

标签 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;

最佳答案

1) 这取决于您与 some_func() 的契约(Contract)。如果 some_func 希望您对其返回值调用 free(),那么您的代码就可以了。

2) 在 C 语言中重用变量是可以的,虽然不是非常优雅。通常最好为不同的目的使用不同的变量。从性能和内存使用的角度来看,这完全是一回事。

关于c 自由提问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1200466/

相关文章:

c - 为什么在c语言中EOF IS -1?

c - 为什么这个宏没有正确扩展?

c - C 中的二维数组索引怎么样?

cudaMemset 无法获取参数

c - 如何正确释放某些 malloc 的数组元素?

c - 如何获取exec执行的程序的返回值?

memory - 从ABAP内存导入通用表?

java - Java 方法的内存开销是多少?

C - 使用自由函数时程序崩溃

需要显式调用 free() 的 C 函数