| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 629 人关注过本帖
标题:关于DEV-C++的疑惑,请了解DEV-C++的解答一下
只看楼主 加入收藏
faminxmu
Rank: 3Rank: 3
来 自:厦门
等 级:论坛游侠
帖 子:191
专家分:106
注 册:2008-4-23
结帖率:70%
收藏
 问题点数:0 回复次数:4 
关于DEV-C++的疑惑,请了解DEV-C++的解答一下
请看下面代码
#include<stdio.h>
void main()
{
int n,i;
scanf("%d",&n);//输入一个数
int a[n];//创建一个n大的数组
for(i=0;i<n;i++)
a[i]=i;//把数组初始化
for(i=0;i<n;i++)
printf("%d ",a[i]);//打印数组每个元素
printf("\n%d ",sizeof(a));//输出数组的字节数
system("pause");
}
您会发现数组的定义有问题与标准C不符合因为数组大小应该先确定的,可俺发现这个程序在DEV-C++下竟然能运行,而且结果正确,这说明DEV-C++编译的时候如果数组没指定大小应该是先分一快较大的内存,后面运行的时候才根据输入数据的大小进行裁减,不知道我这样想对不对,请大家说说这是什么原因或者为什么这样?
搜索更多相关主题的帖子: 解答 
2008-11-07 22:02
子洋虾米
Rank: 1
来 自:哈尔滨市第九中学
等 级:新手上路
帖 子:79
专家分:0
注 册:2008-9-15
收藏
得分:0 
ctrl+F9编译能过吗?
怀疑中...

好花来年开,好景依旧在;趁你还年轻,抓紧搞竞赛。
2008-11-07 22:45
faminxmu
Rank: 3Rank: 3
来 自:厦门
等 级:论坛游侠
帖 子:191
专家分:106
注 册:2008-4-23
收藏
得分:0 
要是不能过我还会来问吗?

在虚拟的世界中寻找目标。
2008-11-07 23:02
huadiw
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-11-07 23:08
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
[bo][un]faminxmu[/un] 在 2008-11-7 22:02 的发言:[/bo]
这说明DEV-C++编译的时候如果数组没指定大小应该是先分一快较大的内存,后面运行的时候才根据输入数据的大小进行裁减,不知道我这样想对不对,请大家说说这是什么原因或者为什么这样?


不对。

说白了,其实就是根据n移动堆栈指针,n是多大就分配多大。很古老的技术了。你愿意的话,用C89也可以,不过要写汇编,而且不是很安全。
2008-11-08 00:21
快速回复:关于DEV-C++的疑惑,请了解DEV-C++的解答一下
数据加载中...
 
   



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

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