声明长度为[x]个字符的Char数组

时间:2014-06-05 13:39:36

标签: c arrays char

我一直试图使用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个字符。

1 个答案:

答案 0 :(得分:1)

如果find_name()期望char指针作为第二个arg,则find_name((wordbank-&gt; list),(array [i]))是错误的,因为array [i]引用了char。