【发布时间】:2021-02-20 08:41:36
【问题描述】:
我一整天都被困在这上面。我希望能够在 C 中创建一个字符串数组,并将该数组传递给 PrintStuff 函数。我不想将我的参数更改为 PrintStuff,但仍然让它工作。请问有什么帮助吗?
void PrintStuff(const char **arr) {
for (int i = 0; i < 5; ++i) {
printf ("%s\n", arr[i]);
}
}
int main ()
{
//This works
//char * array[5] = { "this", "is", "a", "test", "megan"};
//This doesn't work
char * array[5];
for (int i=0;i<5;i++)
{
//scanf("%9s", array[i]);
fgets(array[i], 10, stdin);
}
Sort(array, 0, 5 - 1);
}
它什么也没做,我收到这样的警告
将 'char *[5]' 传递给 'const char **' 类型的参数会丢弃 嵌套指针类型中的限定符 [-Wincompatible-pointer-types-discards-qualifiers]
我不知道这意味着什么或如何解决它,请帮助我!!!!!!!
【问题讨论】:
-
你有五个指针。他们指向哪里?无处。您必须分配一些空间。
-
查看函数
malloc,但请确保检查返回值是否有错误。你也应该为fgets这样做。