First, I made funciton that return Array[2]'s pointer.
int* ReturnArray(int a, int b) {
static int Array[2];
Array[0] = a;
Array[1] = b;
return Array;
}
And I made simple 2-Dimensional array in Main.
int a, b;
in >> NumberOfSize;
int** S = new int*[NumberOfSize];
for (int i = 0; i < NumberOfSize; i++)
S[i] = new int[2];
Last, I added ReturnArray(a,b) to set the value of S[i]
for (int i = 0; i < NumberOfSize; i++)
{
in >> a >> b;
S[i] = ReturnArray(a, b);
}
But in Main, I cannot get right value in Array S[i][j]. When I changed upper way to under, I can set the right value in array 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];
}
What happended in upper way?
And How can i get right value in only one call ReturnArray function?
(sorry for my fool english.)
std::array), I think you wouldn't have a problem.staticmeans.S[i] = ReturnArray(a, b);means that you makeS[i]point to the static array. It doesnt mean copy array contents.