c - 用于传递多维数组的函数声明

标签 c arrays pointers

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

根据问题的措辞,我能想到的是:

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

这有意义吗?

最佳答案

原来的 strlen 看起来像:

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

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

关于c - 用于传递多维数组的函数声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50663841/

相关文章:

c - 递归段错误

c - 移动字符串数组中的元素并用零填充

javascript - 如何在 JavaScript 中从键值对对象创建单个对象?

java - 如何计算字符串中每一行的字符并将数字转换为十六进制

c++ - 为什么 fclose 不将文件指针设置为 NULL?

c - PAM 模块应该放在哪里?

c - Ubuntu/Windows 中的不同输出

c - 我可以安全地设置 TERM 环境变量吗?

Delphi7,传递对象的接口(interface) - 释放对象时导致无效指针操作

c - 如何理解指针 (*) 和寻址 (&) 运算符的概念?