免费注册 查看新帖 |

Chinaunix

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

两种开辟空间的方法在时间上有差别么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-02-18 21:01 |只看该作者 |倒序浏览
想申请几兆大小的内存空间,用数组申请空间和用malloc动态申请空间,对程序的运行速度有多大的影响?恳请赐教!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2005-02-18 21:17 |只看该作者

两种开辟空间的方法在时间上有差别么?

用 malloc 动态申请吧。
用数组就不是速度的问题了。
会有很多麻烦的。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2005-02-18 22:16 |只看该作者

两种开辟空间的方法在时间上有差别么?

malloc申请要占用运行时间的。而用数组申请则在编译的时候就确定好了的。不过如果是几M大小的话,又些平台上数组不能太大。比如在VC6.0中就只能定义1M以内的数组。

论坛徽章:
0
4 [报告]
发表于 2005-02-19 19:19 |只看该作者

两种开辟空间的方法在时间上有差别么?

哈哈,今天算是遇到贵人了,两位版主亲自出马了!真心感谢二位!
我还有一点想问的,两位版主是否在aix上用过ibm的c编译器,它对数组的大小有限制么?
还有斑竹flw,你能不能举几个例子说明一下为什么用数组很麻烦?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2005-02-19 21:28 |只看该作者

两种开辟空间的方法在时间上有差别么?

一般的OS都对堆栈的大小进行了限制。^_^,flw说的我想就是我说的那种情况。

论坛徽章:
0
6 [报告]
发表于 2005-02-20 10:27 |只看该作者

两种开辟空间的方法在时间上有差别么?

AIX上缺省是有限制的,多少我忘了,编译时可以用 -bmaxdataxxxxxx选项来确定可分配堆栈空间的大小。
趁着版主在,搭车问个问题,linux中的gcc有没有类似的选项,我在linux上也遇到这个问题了,目前只能缩小数组的大小

论坛徽章:
0
7 [报告]
发表于 2005-02-20 18:52 |只看该作者

两种开辟空间的方法在时间上有差别么?

谢谢楼上的各位朋友!~^_^~

论坛徽章:
0
8 [报告]
发表于 2005-02-21 09:15 |只看该作者

两种开辟空间的方法在时间上有差别么?

才几兆大小还算大吗.
不要放栈上,放在全局变量不就行吗.

论坛徽章:
0
9 [报告]
发表于 2005-02-21 16:28 |只看该作者

两种开辟空间的方法在时间上有差别么?

第三架马车杀到!呵呵~~
楼上的,“linux中的gcc有没有类似的选项,我在linux上也遇到这个问题了,目前只能缩小数组的大小”
你用什么参数做到的?

论坛徽章:
0
10 [报告]
发表于 2005-02-21 16:42 |只看该作者

两种开辟空间的方法在时间上有差别么?



  1. #include <stdio.h>;

  2. char big_buf[1024*1024*16];

  3. main()
  4. {
  5. char *cp;

  6.     cp = big_buf;
  7.     memset(big_buf, '1', sizeof(big_buf));
  8.     printf("buf_size = %d\n", sizeof(big_buf));
  9. }

复制代码


16M buffer
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP