作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我是一名优秀的程序员,十分优秀!