| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1269 人关注过本帖
标题:如何在程序运行时定义数组的大小
只看楼主 加入收藏
beyondabcd
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2007-5-19
收藏
 问题点数:0 回复次数:5 
如何在程序运行时定义数组的大小

我想数组的大小可以在程序运行时定义,可我写了,不行呀,像这样的情况怎么儿解决呀?
void fileshow(int z)
{ int num[z],j;
for(j=0;j<z;j++)
printf("%d\n",num[j]);
}


main()
{ int i;
scanf("%d", &i);
fileshow(i);
getch();
}
出现错误说
错误 cc.c 2: 需要用常量表达式在 fileshow 函数中
错误 cc.c 2: 结构体或数组的大小未知在 fileshow 函数中

搜索更多相关主题的帖子: 定义 运行 
2007-07-19 20:04
kk4868
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2007-6-3
收藏
得分:0 
动态申请内存,请用calloc或者malloc
具体用法自己找
记得使用完毕要用free释放掉

2007-07-19 20:07
beyondabcd
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2007-5-19
收藏
得分:0 
dos下一次只能申请64K的,我需要的空间也不够用的
2007-07-19 20:10
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
假设TC支持C99规范(虽然这是不现实的),能让你申请边长数组,也没有意义啊,TC的寻址限制不仅是在动态分配空间上,数组一样的有这种限制啊。但动态分配允许你随时将不用的内存free掉,这无疑是更节省的。
要动态申请超过64k的空间,可以使用大模式或紧凑模式。或者在小模式或中模式下使用farmalloc申请而不是malloc
2007-07-19 20:25
beyondabcd
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2007-5-19
收藏
得分:0 
我考,这么复杂呀!!
2007-07-22 16:35
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
我只是多说了一点,简单点讲就是你把malloc替换成farmalloc,free替换成farfree,指针也同样改成far型的
就这样,可以申请超过64KB的内存。但也不过几百KB而已,没什么意思。

[此贴子已经被作者于2007-7-22 18:53:25编辑过]

2007-07-22 18:47
快速回复:如何在程序运行时定义数组的大小
数据加载中...
 
   



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

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