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

我想定义一个312500这么大的数组,但是在VC中却不能通过,不知怎么样才能增大数组下标呢?
这种想法可不可行呢?

搜索更多相关主题的帖子: 怎么样 
2006-05-27 18:04
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
收藏
得分:0 

奋斗改变一切!!
2006-05-27 18:33
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
"我想定义一个312500这么大的数组"
远远大于64K!!
您这是干吗?竟然这么恐怖?!

您可以考虑把数组拆成若干个小于64K的看一下,
我不知道行不行,你自己弄看看

对不礼貌的女生收钱......
2006-05-27 19:45
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 

const long 9999999


VC应该可以


日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-27 20:00
youxiaxyz
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2006-4-5
收藏
得分:0 

还有一种方法就是int前加static也行

2006-05-27 23:34
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(youxiaxyz)增大数组下标

VC允许你开辟很大的数组。TC是老产品,囿于DOS
传统内存限制,数组所占空间超过640KB通常是不可
能的。下面给楼主提供一个用巨型数组的例子。
/*-----------------------*
用筛法产生1亿以内的素数表
(VC++6.0及128MB以上内存)
*-----------------------*/
#include<stdio.h>
#include<stdlib.h>

#define NMAX 100000000
#define SQRN 10000

main()
{
static char a[NMAX];//static不能省略
unsigned long k,i,total=0;//统计素数
for(k=2;k<=SQRN;k++)if(!a[k])
for(i=2*k;i<NMAX;i+=k)
a[i]=1;//标上1表示不是素数
for(i=2;i<NMAX;i++)if(!a[i])
{ printf("%-9ld",i);
if(++total%8==0)
printf("\n");
}
printf("\n%ld\n",total);
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-28 10:10
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
静态存储区来放数组
哎,俺头脑没反应过来,只知道在栈上存放!
另外:版主说错了,应该是64K吧.

对不礼貌的女生收钱......
2006-05-28 10:18
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(soft_wind)静态存储区来放数组[em03]哎,俺头...
在Turbo C下:
auto 数组小于64KB,
huge模式下的“远堆”数组小于640KB,
特殊处理后可达700KB左右。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-28 10:50
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

哦,这样,受教了!
谢谢了!


对不礼貌的女生收钱......
2006-05-28 11:02
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
晕,怎么教人用静态存放大数组??
大数组应该在堆中申请,如果你在堆栈中声明一个大数组,则很有可能导致堆栈溢出。如果你把数组定义成全局或静态的,则会占用类似“数据段”的空间。另外在操作系统加载程序后,应该会规划出可动态申请的内存(即堆)的空间范围。
在WIN下面数据多大申请多大空间一般都不会造成内存耗尽,因为WIN使用的是虚拟内存,内存占完直接用硬盘空间顶替。

我的原则很简单:不做不喜欢的事!
2006-05-28 12:57
快速回复:增大数组下标
数据加载中...
 
   



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

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