当前位置: 代码迷 >> C语言 >> 数组赋值为什么会出错啊??????
  详细解决方案

数组赋值为什么会出错啊??????

热度:36   发布时间:2007-12-11 23:22:01.0
数组赋值为什么会出错啊??????
#include<stdio.h>
#define MAX 1000000
int main(){
    unsigned long int a[MAX]={0};
   
    return 0;
    }

为什么我VC上运行会出错啊?????
搜索更多相关的解决方案: 赋值  int  MAX  main  define  

----------------解决方案--------------------------------------------------------
谢谢了
不过还是不明白为什么会报错啊
----------------解决方案--------------------------------------------------------
报什么错你总得说出来吧
----------------解决方案--------------------------------------------------------
max定义太大了。估计分配地址空间时出的错~~~ 改小了就没错了
----------------解决方案--------------------------------------------------------
我是说我VC  怎么一老出现这样的问题呢?
原来地址空间问题
学习了
----------------解决方案--------------------------------------------------------
/* 你的数组太大了 */

/* 解决方案如下,分几个G内存都可以,Win有虚拟内存的 */

#include <stdio.h>
#include <stdlib.h>
#define MAX 1000000

int main(void)
{
    unsigned long * a;
    int i;

    /* 用 malloc() 从堆上分配内存 */
    a = (unsigned long *)malloc(sizeof(unsigned long)* MAX);

    for(i = 0; i < MAX; i++)
        a[i] = 0;

    free(a);   // 别忘了释放内存
    return 0;
}




//----------------------------//

[[italic] 本帖最后由 cosdos 于 2007-12-12 03:30 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
好大的数组啊
----------------解决方案--------------------------------------------------------
原帖由 [bold][underline]cosdos[/underline][/bold] 于 2007-12-12 03:25 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1144155&ptid=191955][/url]
/* 你的数组太大了 */

/* 解决方案如下,分几个G内存都可以,Win有虚拟内存的 */

#include
#include
#define MAX 1000000

int main(void)
{
    unsigned long * a;
    int i;

    /* 用 malloc() 从堆上分配内存 ...



恩学习了,谢谢哈~
----------------解决方案--------------------------------------------------------
long int型 的大小 为 4个字节。。  10000000 为一百万,则数组大小就为4百万字节,要分配这样的空间,要耗费一片大小为38.147M        连续的    内存空间。。。
----------------解决方案--------------------------------------------------------
  相关解决方案