| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 312 人关注过本帖
标题:问一个关于“自定义数组element数量的问题”
只看楼主 收藏
yimingyin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-8-4
结帖率:50%
  已结贴   问题点数:20  回复次数:6   
问一个关于“自定义数组element数量的问题”
size_t nGrade = 1;
    printf("Enter the number of grades:");
    scanf("%d", nGrade);
   
    int grades[nGrade];
    long sum = 0L;
    float average = 0.0f;

compile的时候提示 int grade[nGrade]必须用常量表示,我的目的是自定义数组的element数量,这个如何改啊

[此贴子已经被作者于2017-8-9 21:51编辑过]

2017-08-09 21:37
Alien_Lee
Rank: 6Rank: 6
来 自:e帝国
等 级:侠之大者
威 望:3
帖 子:109
专家分:497
注 册:2016-7-19
  得分:4 
数组定义的时候必须明确内存的大小,比如说A[5],这个5必须是常数而不能是变量,否则编译器无法给你分配内存。如果要使用变量,则可以用动态内存分配方式,
参考malloc。calloc。recalloc。三个函数。

  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2017-08-09 21:53
yimingyin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-8-4
  得分:0 
回复 2楼 Alien_Lee
这段编码是书上的,在讲如何自定义数组的个数。并没有提到必须使用别的函数。
reference:Beginning C(Ivor Horton)
2017-08-09 21:58
lmlm1001
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:4
帖 子:107
专家分:550
注 册:2015-3-1
  得分:4 
    size_t nGrade = 1;
    printf("Enter the number of grades:");
    scanf("%d", nGrade);
如果你看的书 是这样写的,那我建议你不要看它了。
2017-08-09 23:38
wy2088511
Rank: 2
等 级:论坛游民
威 望:1
帖 子:12
专家分:53
注 册:2009-11-19
  得分:4 
new 或者malloc就可以了。
2017-08-10 12:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:211
帖 子:5066
专家分:27846
注 册:2011-1-18
  得分:4 
以下是引用yimingyin在2017-8-9 21:58:57的发言:

这段编码是书上的,在讲如何自定义数组的个数。并没有提到必须使用别的函数。
reference:Beginning C(Ivor Horton)

你用的C编译器不支持VLA,换gcc吧
2017-08-10 13:02
renkejun1942
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:不是这样
等 级:版主
威 望:22
帖 子:1560
专家分:5003
注 册:2016-12-1
  得分:4 
回复 2楼 Alien_Lee
可以用变量是C99的变长数组。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-08-10 13:43







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051722 second(s), 8 queries.
Copyright©2004-2017, BCCN.NET, All Rights Reserved