c - 在 C 中如何获取指向 char 字符串的指针数组中的项数

标签 c arrays

我想实现以下函数来打印通过指针数组引用的几个 char 字符串的内容。如何在不将总数作为函数参数传递的情况下确定有多少个指针?

如果它是 int 类型的数组,那么可以使用 sizeof() 函数,但假设我的数组中的每一项都是指向char 字符串和每个字符串的长度可能不同 我不认为我可以使用这种方法。

void printCharArray(char *arr[]){

    int length = sizeof(arr) / sizeof(char); /* this does not give correct 
                                          number of items in the pointer array */

    for (int i=1;i<=length; i++) {
        printf("Array item: [%s]",arr[i]);
    }

}

最佳答案

没有内置的方法可以做到这一点,因为 C 不会像这样跟踪数组中元素的数量。

你有几个选择:

  1. 传递数组中的项目数。
  2. 将最后一项设置为 NULL,以便代码知道何时到达末尾。 (这就是 C 字符串的处理方式。)
  3. 否则修改您的数据结构以跟踪数组中的项目数。

关于c - 在 C 中如何获取指向 char 字符串的指针数组中的项数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14015967/

相关文章:

c++ - 如何在编译器不破坏堆栈的情况下将可变参数与 __stdcall 一起使用

c - 将两个字符串连接成一个时遇到问题

c - 无法使用 CS50 IDE 中的函数创建程序

python - NumPy 数组中相同行的索引

c++ - Getline忽略输入的第一个字符

c - C 语言的 Pi 计算器

Ruby 数组转直方图 : How to group numbers by range?

arrays - 如何在数组中的某个索引处插入新值并将所有内容向下移动一个索引?

java - 如何从数组中删除一个元素?

c - 在c中合并2d数组以获得3d数组