【发布时间】:2011-05-05 21:02:00
【问题描述】:
快速提问
你可以使用 free() 函数而不必事先调用 malloc 吗?
ei.
void someFunc( void )
{
char str[6] = {"Hello"};
//some processing here ....
free(str);
}
我没有收到任何编译错误,但这是否有效或完全正确?
谢谢,
【问题讨论】:
-
实际上你可以使用
free而不调用malloc,但前提是你传递给free的值是一个空指针。如果您想要的是一个 可能 指向已分配块,但 可能 指向本地数组的指针,那么它就没有用了。