一般来说我要做什么?我应该总是初始化ptr?
char *ptr;
ptr = malloc (10);
OR
char *ptr = NULL ;
ptr = malloc (10);
在一个函数中?
void func(char **ptr)
{
*ptr = malloc(10);
}
int main()
{
char *ptr; /* OR char *ptr = NULL; ? */
func(&ptr);
return 0;
}
答案 0 :(得分:2)
使用前初始化。
注意,分配也是初始化。
所以,
char *ptr;
ptr = malloc (10);
没问题。
但是在
的情况下void func(char **ptr)
{
*ptr = malloc(10);
}
int main()
{
char *ptr; /* OR char *ptr = NULL; ? */
func(&ptr);
return 0;
}
您应该初始化,因为您可能不知道该函数将对指针执行什么操作。