您好我正在尝试将数组传递给指向函数的指针。我尝试过两种方式。我做的第一种方法是将*数组传递给函数,但后来我得到了错误信息。所以我意识到了这个错误并将其改为数组。但这让我想到,为什么错误说期待双指针?这个错误让我感到困惑。有人可以解释一下谢谢。
add(struct node *arrayy[],int value)
{
struct node *nodey = (struct node *)malloc(sizeof(struct node));
nodey->x=value;
if(arrayy[value]==NULL)
{
printf("I am not pointing to something...now I am hehehe\n");
arrayy[value]=nodey;
}
else
{
printf("I already have a head..now my link is pointing at something\n");
arrayy[value]->link=nodey;
}
}
struct node *array[10]={NULL};
add(*array,4);
add(array,4);
错误消息
note: expected ‘struct node **’ but argument is of type ‘struct node *’
答案 0 :(得分:1)
你有
struct node *array[10]={NULL};
类型为struct node *[]
(又名struct node **
)。
这是add
期望的类型。
如果您取消引用(使用*array
),则您的类型不再与add
的原型匹配。