【发布时间】:2011-10-13 00:40:23
【问题描述】:
我想将一个数组传递给 C++ 中的某个函数。我写了以下代码:
#define nmpart 50
void distances( double (&dis)[3][nmpart][nmpart] )
{
... compute distances which are allocated in "dis"
}
double energy()
{
double dis[3][nmpart][nmpart];
distances(dis);
}
当 nmpart
【问题讨论】:
-
您确定需要这么大的数组吗?当 nmpart=50000 时,您将拥有 50000*50000*3*sizeof(double),即 60 GB。使用动态分配只会让事情变得更糟,因为它需要额外的空间用于控制结构。如果数组只是部分填充,稀疏数组会更好。如果没有,也许可以更改您的算法以按需计算距离。
标签: c++ arrays function memory-management