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);
}
error: incompatible pointer types initializing 'char *' with an expression of type 'char (*)[10]' [-Werror,-Wincompatible-pointer-types] char *pt1 = &name;
最佳答案
name
是一个由 10 char
组成的数组,这是 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;
.
关于c - 如何在 main 中返回指针到指针的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58327748/