求问如何定义长度为1000000的结构体数组?
求问如何定义长度为1000000的结构体数组?
struct xxx
{
.....;
.....;
};
struct xxx a[1000000];
这样的话提示内存栈溢出,求那个malloc申请空间怎么写的?谢过
malloc 1000000数组 内存 栈 struct
[解决办法]
http://baike.baidu.com/link?url=nCMZ_56CMJFvvJdLXH4PtrsEuG3r2Pi_9TVBJgECMiMjVS2Juicpv-y23CmmYrHOufO2vqgfOnBF9zE_gMblR_
你的结构体多大?你的意思是你要在heap上申请?
[解决办法]
struct path *pArray = malloc(10000000*sizeof(struct path))使用malloc申请吧。
[解决办法]
struct path *x=(struct path*)malloc(sizeof(path)*1000000);
x[0].a=250;
x[999999].a=250;
[解决办法]
a=new xxx[1000000];
[解决办法]
好奇楼主的需求啊,
struct path *test=(struct path*)malloc(sizeof(struct path) * 1000000);
[解决办法]
如果真需要这么大的数组,可以先缓存到硬盘上,再分段读取处理。
[解决办法]
Windows ~ 调用 win32 api - CreateFileMapping , OpenFileMapping ...
Linux ~ 调用 mmap ....
开 MemoryMapped file 出来用
几百MB 都没问题
[解决办法]
用内存映射吧,数据多的话这样不效率~~
[解决办法]
定义成全局数组或者静态数组,存放的位置不一样
[解决办法]
没问题。。。