热情软件屋

 

如何在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,或用硬盘文件作缓冲。但为了最大可能保证速度,得采用好的算法。

此问题由曾侃回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio