初始化指针时?

时间:2014-01-19 11:05:15

标签: c function pointers malloc alloc

一般来说我要做什么?我应该总是初始化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;
}

1 个答案:

答案 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;
}

您应该初始化,因为您可能不知道该函数将对指针执行什么操作。