我需要知道是否要创建一个数组,数组的每个元素都是指向链表的指针并将数组传递给函数,函数为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[]);
答案 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 );
在任何情况下,将数组声明作为函数参数调整为指向数组元素类型的对象的指针。