我想实现以下函数来打印通过指针数组引用的几个 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 不会像这样跟踪数组中元素的数量。
你有几个选择:
- 传递数组中的项目数。
- 将最后一项设置为 NULL,以便代码知道何时到达末尾。 (这就是 C 字符串的处理方式。)
- 否则修改您的数据结构以跟踪数组中的项目数。
关于c - 在 C 中如何获取指向 char 字符串的指针数组中的项数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14015967/