屁,看需求
同样的代码
void GetXXX( void** p )
{
*p = malloc( …… );
}
int main()
{
void* p;
GetXXX( &p );
}
有的人认为应该是 void* p = NULL; 更好
但几乎所有的代码检查器都认为 GetXXX( &p ) 一定会给p置新值,因此一开始置为NULL是一种无作用的行为。无作用的行为说明这段代码逻辑有问题,会作为错误给统计出来。
很难说谁对谁错,因为评判的标准不一样。
前者,认为规范很重要,规范可以避免错误;后者,认为逻辑很重要,严格的逻辑可以避免错误。
我建议,如果你老板喜欢前者,那你就加 = NULL;
如果你是写一些开源的代码,会被很多人看到,那就别加 = NULL。