传递指针数组并接收错误信息

时间:2013-09-17 02:03:51

标签: c arrays function pointers

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

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

1 个答案:

答案 0 :(得分:1)

你有

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

类型为struct node *[](又名struct node **)。

这是add期望的类型。

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

相关问题