我试图通过让用户在提示后输入数组的大小来确定数组的大小(因为我不知道每次测试我会有多少成绩)...
它似乎不喜欢 scanf ("%c",&grades[i]);
这是整个函数:
#include <stdio.h>
int main (void)
{
int numGrades;
char grades;
char i;
int x;
printf ("Enter The Amount Of Numbers In Your Array: ");
scanf("%i", &numGrades);/*Stores Amount Of Grades In The Array*/
for (x = 0; x < numGrades; ++x)
{
printf ("\nEnter the grade: ");
scanf ("%c",&grades[i]);
}
return 0;
}
如何将数组大小作为参数传递,以便我可以接受任何大小的数组? (我将添加一个函数,它将获取所有成绩并将它们按字母组合在一起)
最佳答案
你有两个选择:
如果您的编译器支持 C99 可变长度数组,您可以在获取大小后声明数组:
scanf("%i", &numGrades); char grades[numGrades];
如果不是,则必须在堆上动态分配数组:
scanf("%i", &numGrades); char *grades = malloc(numGrades * (sizeof *grades));
关于C - 声明一个具有未定义值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15264613/