指向链表的指针数组

时间:2015-06-06 10:45:29

标签: c arrays pointers 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[]);

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

数组定义为

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 );

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