传递二维数组的字符串功能?

时间:2015-03-24 04:57:15

标签: c string function multidimensional-array

我正在尝试将此数组发送到函数sortByLength

函数原型是

sortByLength(char *words[],int * lengths, const int size);

这是我的其余代码,直到我尝试将其传递给函数:

#include <stdio.h>
#include "task2.h"
#define SIZE 3

int main(void)
{
    int i;
    int lengths[SIZE] = {3, 4, 6};
    char words[][20] = {"Sun", "Rain", "Cloudy"};

    sortByLength(words[][20],lengths,SIZE);

    return 0;
}

1 个答案:

答案 0 :(得分:2)

原型

sortByLength(char *words[],int * lengths, const int size);  

相当于

sortByLength(char **words,int * lengths, const int size);  
传递给函数时,

words[][20]将转换为指向20 char s 数组的指针。 char **char (*)[20]是不兼容的类型。将函数原型更改为

sortByLength(char (*words)[20], int *lengths, const int size);