[英]Passing an array of character pointers to a C function
我想将字符指针数组传递给C函数并访问该数组中的每个元素。 我已经全局声明了这样的指针数组。
char *TblList[] = { "TableA", "TableB", "TableC" };
作为全局变量,我可以简单地以TblList[0]
, TblList[1]
和TblList[2]
。
我想将TblList[]
传递到一个函数中,该函数位于另一个对象中,但绑定到程序中(如果有意义)。
目前,我有这样声明的功能。
short Func(char *Tbl[])
{
short total_tbl = 0;
total_tbl = OCCURS(Tbl);
...
}
OCCURS
返回值1
。 我需要3,因为TblList[]
有3个元素。 我如何传递TblList
以及Func()
的正确声明是什么? 另外,在Func()
访问Tbl[]
的正确语法是什么?
提前致谢。
没有附加信息,就无法知道数组元素的数量。 这可能是一个单独的变量,但是在此示例中,我在数组末尾使用了NULL
标记-与使用nul
标记标记char
数组(字符串)的结尾的方式几乎相同。
我不使用OCCUR()
函数或宏,因为我不理解您的评论。 我还将返回值从short
更改为int
,这是机器的自然大小。
#include<stdio.h>
#include<string.h>
char *TblList[] = { "TableA", "TableB", "TableC", NULL };
int Func(char *Tbl[])
{
int i = 0;
while (Tbl[i] != NULL)
i++;
return i;
}
int main(void)
{
printf ("Number of array elements: %d\n", Func(TblList));
return 0;
}
程序输出:
Number of array elements: 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.