我想将一个字符指针数组传递给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()
的正确声明是什么?另外,在Tbl[]
中访问Func()
的正确语法是什么?
提前致谢。
答案 0 :(得分:0)
没有附加信息,无法知道数组元素的数量。这可能是一个单独的变量,但是在这个例子中,我在数组的末尾使用了NULL
sentinel - 与使用nul
sentinel标记{{{}结尾的方式非常相似1}} array(一个字符串)。
我放弃了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;
}