我正在研究解決經濟學模型的程序。首先,我聲明瞭一個命名空間如下:C++通過引用函數傳遞數組,但內容保持不變
namespace myNameSpace
{
const int d1{10};
const int d2{5};
const int d3{7};
double array[d1][d2][d3]={};
}
然後,我有修改array
功能:
void doSomething(double (&array)[myNameSpace::d1][myNameSpace::d2][myNameSpace::d3])
{
int i,j,k;
for (i=0, j=0, k=0; i<myNameSpace::d1,j<myNameSpace::d2,k<myNameSpace::d3; i++,j++,k++)
array[i][j][k]=i+j+k+1.0;
}
在主函數中我打電話doSomething
爲:
int main()
{
doSomething(myNameSpace::array);
for (int i=0;j<myNameSpace::d1;j++)
std::cout << myNameSpace::array[i][1][1] << std::endl;
}
的輸出我得到的控制檯是:
0
0
0
你能提供這方面的指導嗎?我試過通過array
而沒有地址 - 運營商&
,但後來doSomething
,array
損失第一維。任何幫助將不勝感激!
'爲( int i = 0; j
ikleschenkov
您需要提出警告。 [你的編譯器應該告訴你你的代碼沒有做你認爲它是](http://coliru.stacked-crooked.com/a/cde7b40f4cda6b72) – NathanOliver
'for(int i = 0; j
PaulMcKenzie