标签: c
我有一个接受80个字符串的可变长度数组的函数。我定义了这样的函数:
void foo (char namelist[][80] ...
在main()中我执行以下操作:
char **names = (char **)malloc(numNames * 80); foo(names);
此处的名称类型不正确。将它键入固定长度数组的可变长度数组的适当方法是什么?
答案 0 :(得分:4)
names应声明为:
names
char (*names)[80];
这将names声明为指向80个字符数组的指针。
顺便说一句,没有必要在C语言中转换malloc的返回值,很多人认为这是不好的做法。请参阅:1,2。
malloc