以下代码片段有什么区别?
int main()
{
int *p;
p= (int*)malloc(sizeof(int));
}
和
int main()
{
int *p = (int*)malloc(sizeof(int));
}
答案 0 :(得分:4)
第一个代码段是两步,定义一个指针,然后assigning一个有效的 ** 值到指针。
第二个代码段通过一次调用malloc()
来声明和initializes指针。
实际上,两个片段的最终结果都是相同的。它更多的是编码标准指南,供人们使用。
但有一个建议,如果使用第一种样式,请考虑初始化指向NULL
的指针,以防止在赋值之前意外使用指针。
那就是please see this discussion on why not to cast the return value of malloc()
and family in C
.。
** [注意]:提供,malloc()
成功。