int配列を渡そうとしています。以下は私がやりたいことの例です。基本的には、ポインタを返すことでint配列を返す関数を書くことができます。次に、その関数を取得して、別の関数の引数として使用します。目標は、1つの関数でint配列を作成し、それを入力としてint配列を受け取る別の関数に入れることです。動作しません。int *ポインターを受け取る関数内では、int *ポインターは-8435432になり、別のint*ポインターに割り当てられた後にその要素を読み取ることはできません。理解できません。関数からint配列を取り戻すことができるのに、これを別の関数への入力として使用できないのはなぜですか?
int * returnIntArray()
{
int * thePointer;
int j[3];
thePointer = j;
j[0] = 1;
j[1] = 3;
j[2] = -1;
return thePointer;
}
//
int * takesTheIntArray(int * anIntArray)
{
int x,y,z;
int * returnIt;
returnIt = anIntArray;
x = returnIt[0];
y = returnIt[1];
z = returnIt[3];
return returnIt;
}
int _tmain(int argc, _TCHAR* argv[])
{
int y,z,p;
int * x;
x = returnIntArray();
y = x[0];
z = x[1];
x = takesTheIntArray(returnIntArray());
cout << x[0] << ", " << x[1];
//cout << theVector[1];
cout << "hello";
}