0

您好我正在尝试将数组传递给指向函数的指针。我尝试了两种方式。我做的第一种方法是将 *array 传递给函数,但随后我收到下面的错误消息。所以我意识到了错误并将其更改为数组。但这让我想,为什么错误说期待一个双指针?这个错误现在让我有点困惑。有人可以解释一下。谢谢。

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 *’
4

1 回答 1

1

你有

struct node *array[10]={NULL};

这是类型struct node *[](又名,struct node **)。

这是add预期的类型。

如果您取消引用(使用*array),您的类型将不再与 的原型匹配add

于 2013-09-17T02:11:38.197 回答