如何定义大数组?
我需要定义一个数组,包含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楼:
我知道你说的申请内存要判断,我只是给楼主一个例子而已,呵呵。
----------------解决方案--------------------------------------------------------