int N=100; int num[N];编译报错的原理是能说一下 谢谢
答案:6 悬赏:40 手机版
解决时间 2021-03-16 06:02
- 提问者网友:温旧梦泪无声
- 2021-03-15 07:46
int N=100; int num[N];编译报错的原理是能说一下 谢谢
最佳答案
- 五星知识达人网友:春色三分
- 2019-06-28 02:22
这是C,对吧?C里面是不可以这样子的。因为C中数组的声明不可以是一个变量!即使是你这样子的也不行。C中的数组必须是一个常数,否则编译就会报错。标准的C是这样子的。好像前两年不知是哪个编译器的,已经加入了可变的数组。就是可以用楼主的那么方法声明数组。但是ANSI标准的C是非法的!!!必须是常数!!!
如果是动态分配内存的话应该是这样子。
int n = 100, *num ;
num = (int *)malloc(n * sizeof(int)) ;
如果是动态分配内存的话应该是这样子。
int n = 100, *num ;
num = (int *)malloc(n * sizeof(int)) ;
全部回答
- 1楼网友:骨子里都是戏
- 2020-02-04 10:17
额这个可以这样的,然后这样,在这样。
- 2楼网友:独钓一江月
- 2020-11-12 16:08
你是想动态分配内存!但是动态内存分配不是这样的,应该用alloc,realloc等函数来实现!这是编译器规定的,不要问我为什么!
- 3楼网友:话散在刀尖上
- 2020-10-03 05:37
首先N是变量,用变量来定义数组大小是不允许的。你是想动态分配数组大小么?还是其他的?
- 4楼网友:枭雄戏美人
- 2021-01-07 12:41
首先,在C中,数组元素个数不能是变量,而你采用了整形变量N来定义数组元素个数
在C++中这样好像是允许的,具体不记得了。你可以查一下手册看看!
- 5楼网友:渊鱼
- 2019-12-18 21:44
麻烦你把编译报错的信息放上来
如果你没有重复定义某一个变量或者使用中文的;的话,这两语句是正确的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯