中返回C++數組指針首先,我做了返回Array [2]指針的函數。如何在方法
int* ReturnArray(int a, int b) {
static int Array[2];
Array[0] = a;
Array[1] = b;
return Array;
}
而且我在Main中製作了簡單的2維數組。
int a, b;
in >> NumberOfSize;
int** S = new int*[NumberOfSize];
for (int i = 0; i < NumberOfSize; i++)
S[i] = new int[2];
最後,我添加ReturnArray(A,B)來設置S [I]
for (int i = 0; i < NumberOfSize; i++)
{
in >> a >> b;
S[i] = ReturnArray(a, b);
}
但在主,我無法得到在陣列S [I]合適的值[j的值]。 當我改變上部的方式下,我可以設置在陣列S.
for (int i = 0; i < NumberOfSize; i++)
{
in >> a >> b;
S[i][0] = ReturnArray(a, b)[0];
S[i][1] = ReturnArray(a, b)[1];
}
正確的價值在什麼上的方式happended?
而我怎樣才能得到正確的價值只有一個調用ReturnArray函數?
(對不起我的傻瓜英語。)
如果您使用的是標準庫組件(例如'std :: array'),我認爲您不會遇到任何問題。 – Hurkyl
請閱讀「靜態」的含義。 –
'S [i] = ReturnArray(a,b);'表示您將'S [i]指向靜態數組。它並不意味着複製數組內容。 –