Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 传递多维数组的函数声明_C_Arrays_Pointers - Fatal编程技术网

C 传递多维数组的函数声明

C 传递多维数组的函数声明,c,arrays,pointers,C,Arrays,Pointers,我需要一个strlen的二维版本的函数声明。也就是说,此函数必须接收指向char的指针数组和size\t整数数组,以及指定每个数组中元素数的int 根据问题的措辞,我可以这样想: void strlen_2D(char *ar[][size_t], int n) // n is number of elements 这有什么意义吗?原来的斯特伦看起来像: size_t strlen(const char *str) 我相信你正在寻找这样的东西: void strlen_2D(const ch

我需要一个strlen的二维版本的函数声明。也就是说,此函数必须接收指向char的指针数组和size\t整数数组,以及指定每个数组中元素数的int

根据问题的措辞,我可以这样想:

void strlen_2D(char *ar[][size_t], int n) // n is number of elements

这有什么意义吗?

原来的斯特伦看起来像:

size_t strlen(const char *str)
我相信你正在寻找这样的东西:

void strlen_2D(const char *ar[], size_t lengths[], int n) {
    for(int i = 0; i < n; i++) {
        lengths[i] = strlen(ar[i]);
    }
}
void strlen\u 2D(常量字符*ar[],大小长度[],整数n){
对于(int i=0;i

根据问题的措辞,调用者应该提供要填充的长度数组作为out参数。

多维数组在C中不存在(它只有数组数组数组、指针数组、聚合数组,如
struct
union
-等,一些已知类型的元素数组)。每个数组元素都有固定的已知类型、大小和对齐方式。另请参见
char*ar[][size\u t]
会做什么?我只是根据措辞进行声明。我相信*ar[][size\u t]会有指向具有size\t整数的char数组的指针数组??