malloc()函数的返回

malloc()函数据说返回一个空指针或一个指向已分配空间的指针。 假设对于一个字符串,我们做出如下陈述:

char* ptr =  malloc(size)  

ptr不是指向指针的指针吗?
不是:

char** ptr = malloc(size)  

应该是正确的方式来声明指向char的指针?

但是,编译器在我们执行任何操作时都不会给出警告,但它提供的警告是使用格式说明符。

我们应该如何申报?为什么? 另外,如何使用char **?


char *表示一个字符指针。 Malloc将返回一个void *指针(它将自动转换为您要分配的任何指针)。

char **表示一个char *指针。 这是一个指向指针的指针。

如果你将一个指针看作一个映射,那么char *就是一个映射到char的映射, void *是映射到某种神秘的映射,并且char **是导向char的另一个映射的映射。 所以

char* ptr = malloc(size);

是正确的,因为你想要一张地图,而不是一张地图。


不,'ptr'将包含'malloc'返回的指针。 您正在分配返回的指针,而不是其地址。


  • *ptr是一个指向char的指针,通常用于管理数组或字符串。

  • **ptr是一个指向char的指针,这是一个常用的字符
    管理矩阵(数组数组)或字符串数​​组。

  • 链接地址: http://www.djcxy.com/p/28369.html

    上一篇: return of malloc() function

    下一篇: Type casting in malloc