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的指针,这是一个常用的字符
管理矩阵(数组数组)或字符串数组。