指向链表的指针数组

Array of pointers to linked list

我需要知道是否要创建一个数组,数组的每个元素都是指向链表的指针,并将数组传递给函数,函数是 void 因为我需要更改数组

typedef struct n{
  char *S;
  int num;
}list;

int (main){
list *Array[50];
return 0;
}

函数应该是void changeArray(list A[]);还是void changeArray(list *A[]);还是void changeArray(list **A[]);

数组定义如下

list *Array[50];

因此,如果您想将此数组传递给函数,则应将其声明为

void changeArray( list *Array[50], size_t n );

void changeArray( list *Array[], size_t n );

void changeArray( list **Array, size_t n );

并称赞

changeArray( Array, 50 );

在任何情况下,将数组声明作为函数参数调整为指向数组元素类型的对象的指针。

函数可以是 void changeArray(list *A[])void changeArray(list **A)。两个签名都接受一个指针数组,并允许您更改该数组的元素:

void changeArray(list *A[]) {
    ...
    A[0] = malloc(list);
}