Arrays 如何从C中的输入读取字符串数组并传递给函数?
我一整天都在忙这个。我希望能够在C中创建一个字符串数组,并将该数组传递给PrintStuff函数。我不想将参数更改为PrintStuff,但仍然可以使用。需要帮忙吗Arrays 如何从C中的输入读取字符串数组并传递给函数?,arrays,c,string,function,Arrays,C,String,Function,我一整天都在忙这个。我希望能够在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 *
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);
}
void打印材料(常量字符**arr){
对于(int i=0;i<5;++i){
printf(“%s\n”,arr[i]);
}
}
int main()
{
//这很有效
//字符*数组[5]={“this”、“is”、“a”、“test”、“megan”};
//这不管用
字符*数组[5];
对于(inti=0;i首先了解什么是char*array[5]
这只是指向char*
的5个指针的数组,所以在使用它们之前,每个指针都需要内存
char* array[5] = NULL;
int noe = sizeof(array) / sizeof (array[0]);
for(int a = 0; a < noe; a++) {
if( !(array[a] = malloc(BUFFER_SIZE))
printf("malloc failed at %d entry\n", a);
}
char*array[5]=NULL;
int noe=sizeof(数组)/sizeof(数组[0]);
对于(int a=0;a
使用完后,别忘了释放它们
for(int a = 0; a < noe; a++) {
if(array[a]) {
free(array[a]);
array[a] = NULL;
}
}
for(int a=0;a
您有五个指针。它们指向哪里?哪里都没有。您必须分配一些空间。请查看函数malloc
,但确保检查返回值是否有错误。您也应该为fgets
执行此操作。您还可以静态分配一些空间,如char array[5][100]
@DanielWalker,是的,我们可以,因为OP使用指针,所以建议这样做。@klutt,你是对的,我只是把5个指针的数组写成5个指向5个数组的指针,不确定OP是否理解如果我说指针数组,我可以更正。