免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6127 | 回复: 13
打印 上一主题 下一主题

数组为什么不能用变量声明其大小 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-09-05 15:53 |只看该作者 |倒序浏览
请大侠解答。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-09-05 15:59 |只看该作者

数组为什么不能用变量声明其大小

数组的空间大小在编译的时候就必须确定了。

但是变量是动态的,所以不行。

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
3 [报告]
发表于 2003-09-05 16:19 |只看该作者

数组为什么不能用变量声明其大小

如果数组是在函数里的,则位于堆栈,全局在数据区,程序加载的时候无法分配空间。

论坛徽章:
0
4 [报告]
发表于 2003-09-05 16:31 |只看该作者

数组为什么不能用变量声明其大小

各位回答的都正确。

如果你要动态的,
cp = ( XXX *)malloc(sizeof( XXX ) );
不就是动态的吗?
cp[0].YYY
cp[n].ZZZ

论坛徽章:
0
5 [报告]
发表于 2003-09-05 16:45 |只看该作者

数组为什么不能用变量声明其大小

但是我的数组是在函数中的,堆栈的维护不是动态的吗。

论坛徽章:
0
6 [报告]
发表于 2003-09-05 16:52 |只看该作者

数组为什么不能用变量声明其大小

C语言就是这样做的。

#define SIZE   80

function1()
{
char  array[SIZE];
.......................
}

SIZE不能很大呀!否则STACK占太多。

论坛徽章:
0
7 [报告]
发表于 2003-09-05 17:29 |只看该作者

数组为什么不能用变量声明其大小

c99好像可以

论坛徽章:
0
8 [报告]
发表于 2003-09-05 17:33 |只看该作者

数组为什么不能用变量声明其大小

[quote]原帖由 "tinywind"]c99好像可以[/quote 发表:
     
危险的使用。

论坛徽章:
0
9 [报告]
发表于 2003-09-05 17:56 |只看该作者

数组为什么不能用变量声明其大小

原帖由 "flag" 发表:
   
危险的使用。

指针也很危险,你是不是不用了?

论坛徽章:
0
10 [报告]
发表于 2003-09-06 10:27 |只看该作者

数组为什么不能用变量声明其大小

我说危险是因为编译的时候这个分配的空间大小并不能确定,会出现无法预计的错误,比起指针当然要危险的多.当然如果你不按规定作,即便是简单的赋值也一样会出错.按安全的方法操作,自然会将不可预料性降低到最低.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP