C语言 如何使用指针到指针在 main 中返回?


void    ft_destroy(char ***factory);
int     main()
{
char name[] = "sebastian";
char *pt1 = &name;
char **pt2 = &pt1;
char ***pt3 = &pt2;
printf("%s", ft_destroy(pt3));
return (0);
}
错误:使用类型为"char (*([10]"的表达式初始化"char *"的不兼容指针类型 [-werror,-wincompatible-pointer types] 字符 *pt1 = &名称;

name是一个10char的数组,这是一个char [10]。所以&name是一个指向char数组的指针,这是一个char (*)[10]。由于pt1是一个char *,你应该给它分配一个指向char的指针。

因为name是一个char数组,name[0]是一个char&name[0]是一个指向char的指针。所以你可以做char *pt1 = &name[0];.

如果你只使用name,C会自动将其转换为指向其第一个元素的指针,因此您也可以执行char *ptr1 = name;

char *pt1 = &name;

&name是您需要char (*pt1)[10]存储它的char[10]类型的地址。

也许你可以这样做。

char *pt1 = &name[0]; //or char *pt1 = name;

在本例中,&name[0]属于char *类型。

相关内容

  • 没有找到相关文章

最新更新