大众信息网

int n ; scanf("%d",&n); int a[n]; 请问一下,以上程序错在哪啊!

答案:4  mip版
解决时间 2021-01-09 02:35
  • 提问者网友:终究是陌生了
  • 2021-01-08 05:47
int n ; scanf("%d",&n); int a[n]; 请问一下,以上程序错在哪啊!
最佳答案
  • 二级知识专家网友:轉角離身
  • 2021-01-08 06:28
注意这是编译程序,不是解释程序,在编译时,n的值是不确定的,这样a的空间就没有办法确定,因此,是不能这样定义数组的,如果确实需要使用一个变化的大小,可以使用堆进行分配,例如:int *a=new sizeof(int)*n; 使用完成后注意释放。
全部回答
  • 1楼网友:傻ㄋ吧唧
  • 2021-01-08 08:43
C不许许对数组的定义做动态定义,及数组的大小不依赖于程序运行过程中变量的值,这里的n是变量,所以是错误的。
  • 2楼网友:距离和很远
  • 2021-01-08 08:25
不允许这样定义,你可以用一个预定义来定义n,如#define n 10 这样就可以定义int a[n];忘采纳!
  • 3楼网友:琉璃知世
  • 2021-01-08 06:51

scanf函数中只能放占位符不能加入转义字符

scanf("%d",&a);

我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯