繁体   English   中英

将字符指针数组传递给C函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM