C中固定长度数组的可变长度数组

时间:2011-10-11 18:52:42

标签: c

我有一个接受80个字符串的可变长度数组的函数。我定义了这样的函数:

void foo (char namelist[][80] ...

在main()中我执行以下操作:

char **names = (char **)malloc(numNames * 80);
foo(names);

此处的名称类型不正确。将它键入固定长度数组的可变长度数组的适当方法是什么?

1 个答案:

答案 0 :(得分:4)

names应声明为:

char (*names)[80];

这将names声明为指向80个字符数组的指针。

顺便说一句,没有必要在C语言中转换malloc的返回值,很多人认为这是不好的做法。请参阅:12