当前位置: 代码迷 >> C语言 >> 如何定义大数组?
  详细解决方案

如何定义大数组?

热度:195   发布时间:2005-07-25 21:38:00.0
如何定义大数组?
我需要定义一个数组,包含1000001个元素,编译时,总说我定义的数组过大,有没有什么方法能解决的啊?
搜索更多相关的解决方案: 定义  元素  编译  

----------------解决方案--------------------------------------------------------
用malloc函数,
这么大的数据你可以选择用malloc分配二维数组的方式方便访问
----------------解决方案--------------------------------------------------------
int *a;
a=(int *)malloc(1000000001*sizeof(int));

这样就不会了,如果是C++的话,就a=new int [100000001];
不会出现楼主的问题。
----------------解决方案--------------------------------------------------------


malloc 函数不会用,能给解释一下吗?
----------------解决方案--------------------------------------------------------
楼上不是举例了吗?
----------------解决方案--------------------------------------------------------
以下是引用seeker在2005-7-25 22:57:56的发言: int *a; a=(int *)malloc(1000000001*sizeof(int)); 这样就不会了,如果是C++的话,就a=new int [100000001]; 不会出现楼主的问题。
即使你在堆内存中分配也不一定能得到那么大的连续的内存空间! 还有你的1000000001少写了个l,告诉它是长整形! 还有你申请完空间后没有判断是否申请到! 在使用malloc()函数和new操作符后都要判断是否得到想要的内存
----------------解决方案--------------------------------------------------------
数组定义的最大限度是多少啊
谢谢
----------------解决方案--------------------------------------------------------
就是系统提示你不能定义这么大的数组那就是最大了
----------------解决方案--------------------------------------------------------
TO 6楼:

我知道你说的申请内存要判断,我只是给楼主一个例子而已,呵呵。
----------------解决方案--------------------------------------------------------
  相关解决方案