我想处理一个字符串数组,所以它是一个字符数组的数组
我已经定义了这样的字符串
char que1[4][LEN_STRING]={{'\0'}};
我想将它们传递给函数
void print_results(char *pqueries[],document p_docs[]);
用一个简单的
print_results(que1,indoc);
导致“预期'char **'但参数类型为'char(*)[30]'”
我甚至不确定我是否实际定义了函数签名,
帮助将不胜感激
谢谢
3 回答
数组数组与指针数组不同 . 请参阅C FAQ更多详细信息:http://c-faq.com/aryptr/pass2dary.html .
一种解决方案是修改函数以获取固定宽度的字符串:
因为它是一个chars数组的数组,你可以将它衰减为一个指针数组(每个指针代表char数组的位置),因此使用它:char ** que1;
你现在可以这样称呼:
print_results(que1,indoc)的定义是:
柔软的
正确的声明/定义将是