如何在VC中声明一个多维数组
编号:QA002548
建立日期: 2000年2月11日 最后修改日期:2000年2月11日
所属类别:
吴志航:
操作系统:windows NT
编程工具:visual c++ 6
问题:请问如何在vc中声明一个三维数组,这个数组中存储double类型的数据。因为要求对每一节点数据进行频繁的访问,请问如何是好,另外这个数组比较大,是500*500*500的,请问这些数据如何存储。望赐教,谢谢!
回答:
VC 中 三维数组可以直接申请。如
double a[10][5][7];
若维数分别为 n3,n2,n1。 即 a[n3][n2][n1], 则实际需要的线性内存为,
n3*sizeof(void *)+
n3*n2*sizeof(void *)+
n3*n2*n1*sizeof(TYPE)
这里 TYPE 是 double,
sizeof(void *) 是 4; sizeof(TYPE) 是 8,
则对于一个 500*500*500 的数组,需要线性内存1001002000 = 955 Mb,接近 1G. 因此,要求物理内存至少 1G。 这似乎有些不合理。
建议
1,根据实际问题,改进算法,避开开如此大数组的需求。
2,或可考虑使用数据库来存储数据。
3,或用硬盘文件作缓冲。但为了最大可能保证速度,得采用好的算法。
此问题由曾侃回答。
| |
|
|
| |
|
|