我一直试图使用calloc声明一个数组,通常这很容易,但我很难接受这个:
我需要声明一个char数组,它必须是[n long long]并保存名为char [x]的名称。其中x是根据输入而变化的值。我们的想法是将名称保存到数组中,然后将它们与具有相同名称的列表进行比较。
将数组声明为
char *array = calloc(number_x,sizeof(char));
有效,但是当我们编译它时,我得到了一个
warning: incompatible pointer to integer conversion assigning to 'char' from 'char [10]'
还尝试使用:
声明数组char* array = malloc(number_x*sizeof(char[21]));
但是返回相同类型的错误。有什么方法可以解决这个问题吗?
修改 要回答以下评论: 错误点在这里:
For (int i = 0; i < number_x; i++) {
current_word = find_name((wordbank->list),(array [i]));
.... blah ...
}
(find_name)是一个函数,它接受一个指向列表的指针,然后指向char name的指针返回一个节点到名称。
很抱歉。
再次编辑: number_x是列表中存储的单词数。所以我们总共可以有1000个单词,但每个单词必须存储的是char [21]类型,因此最多只能是21个字符。
答案 0 :(得分:1)
如果find_name()期望char指针作为第二个arg,则find_name((wordbank-&gt; list),(array [i]))是错误的,因为array [i]引用了char。