| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 675 人关注过本帖
标题:为什么数组内存还真不能超过6400KB
只看楼主 加入收藏
scorego
Rank: 2
等 级:论坛游民
帖 子:26
专家分:20
注 册:2010-1-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
为什么数组内存还真不能超过6400KB
老师上课是说数组内存占用不能超过6400KB,我回去试了一下,还真发生了错误,这是为什么呢?

#include <stdio.h>
#define M 10000000
void main()
{
    printf("\n一共%dKB\n",2*M/1000);

    int a[M];
    for(int i = 0; i < M; ++i)
    {
        a[i] = 0;
    }   
}
搜索更多相关主题的帖子: 内存 
2010-10-11 23:50
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:10 
你改成
#include <stdio.h>
#define M 10000000
int main()
{
    printf("\n一共%dKB\n",2*M/1000);

    int *a = (int*)malloc(sizeof(int) * M);
    for(int i = 0; i < M; ++i)
    {
        a[i] = 0;
    }
    return 0;
}
就正常了

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-10-12 00:29
cacker
该用户已被删除
收藏
得分:10 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-12 00:53
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
以下是引用cacker在2010-10-12 00:53:36的发言:

这是你栈最大是多少的问题   可以在工程里设置    默认的好像 下限1000   上限是多少我就不记得了

在link里的output  你自己看看吧  反正是 你使用的栈空间如果大于1000  他就会在要一个1000给你用

一旦你大于上边说的最大值  他就崩了

这个解释有问题,栈大小是程序一开始运行就确定了,不会运行时变大到所谓的某上限的
默认大小是4M还是1M来着

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-10-12 01:05
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
收藏
得分:0 
回复 4楼 御坂美琴
不过我还是不明白 定义数组的时候 最大也就是 6400 ,我以前也碰到过这样的问题,后来觉得是内存是太小了,不过现在想想觉得不是这样子...但不知道什么原因。望高手赐教。。。
2010-10-12 06:33
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
运行一个程序,实际是在自己的一个虚拟空间里的!这个空间是会受到限制的。你可能通过链接器选项(堆栈大小)来控制!(大于6400的数组是可能的)

[ 本帖最后由 cnfarer 于 2010-10-12 09:58 编辑 ]

★★★★★为人民服务★★★★★
2010-10-12 09:53
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
以下是引用御坂美琴在2010-10-12 01:05:13的发言:

 
这个解释有问题,栈大小是程序一开始运行就确定了,不会运行时变大到所谓的某上限的
默认大小是4M还是1M来着
运行时也可以修改。
2010-10-12 09:56
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-12 13:48
快速回复:为什么数组内存还真不能超过6400KB
数据加载中...
 
   



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

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