我正在尝试创建一个函数,将所选单词的指针从输入数组(allTerms)动态添加到最终返回的数组(myTerms)。指针指向 allWords 数组中的各个单词,并根据函数 (isTermNeeded) 选择要包含的单词(作为指向 allWords 的指针)。如何分配指向 myTerms 的指针并为其工作分配足够的空间?
这是我遇到问题的片段:
myTerms = (char **)realloc(myTerms, (c+1)*sizeof(char *));
myTerms[c] = allTerms[i];
这是完整的功能:
char **getMyTerms(char **allTerms, char info[])
{
int i = 0,
c = 0; // amount of terms selected
char **myTerms; // array of selected terms
while (allTerms[i])
{
if (isTermNeeded(allTerms[i], info))
{
myTerms = (char **)realloc(myTerms, (c+1)*sizeof(char *));
myTerms[c] = &allTerms[i];
c++;
}
i++;
}
return myTerms;
}
这是我收到的警告:
term.c:95:15: warning: incompatible pointer types assigning to 'char *' from 'char **'; remove & [-Wincompatible-pointer-types]
myTerms[c] = &allTerms[i];
^ ~~~~~~~~~~~~
1 warning generated.