gpt4 book ai didi

C - 声明一个具有未定义值的数组

转载 作者:太空宇宙 更新时间:2023-11-04 06:03:19 26 4
gpt4 key购买 nike

我试图通过让用户在提示后输入数组的大小来确定数组的大小(因为我不知道每次测试我会有多少成绩)...

它似乎不喜欢 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;
}

如何将数组大小作为参数传递,以便我可以接受任何大小的数组? (我将添加一个函数,它将获取所有成绩并将它们按字母组合在一起)

最佳答案

你有两个选择:

  1. 如果您的编译器支持 C99 可变长度数组,您可以在获取大小后声明数组:

    scanf("%i", &numGrades);
    char grades[numGrades];
  2. 如果不是,则必须在堆上动态分配数组:

    scanf("%i", &numGrades);
    char *grades = malloc(numGrades * (sizeof *grades));

关于C - 声明一个具有未定义值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15264613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com