私はクラスについてのポインタとnew
演算子について学んでいます。ユニット化されたローカル変数と助けを訂正
私のreadArray関数では、サイズを読み込みます。サイズをに動的に使用する整数配列を作成します。次に、配列にポインタを代入し、それを埋め込み、サイズと配列を返します。
私はその部分を修正して修正したと思いますが、配列をソートしようとすると、エラー"初期化されていないローカル変数temp
が使用されます。
問題は、私がそれを初期化しようとしているときにエラーが発生することです。 ご協力いただきありがとうございます。私の間違いを見ることは私にとって非常に役に立ちます。
#include <iostream>
using namespace std;
int* readArray(int&);
void sortArray(int *, const int *);
int main()
{
int size = 0;
int *arrPTR = readArray(size);
const int *sizePTR = &size;
sortArray(arrPTR, sizePTR);
cout<<arrPTR[1]<<arrPTR[2]<<arrPTR[3]<<arrPTR[4];
system("pause");
return 0;
}
int* readArray(int &size)
{
cout<<"Enter a number for size of array.\n";
cin>>size;
int *arrPTR = new int[size];
for(int count = 0; count < (size-1); count++)
{
cout<<"Enter positive numbers to completely fill the array.\n";
cin>>*(arrPTR+count);
}
return arrPTR;
}
void sortArray(int *arrPTR, const int *sizePTR)
{
int *temp;
bool *swap;
do
{
swap = false;
for(int count = 0; count < (*sizePTR - 1); count++)
{
if(arrPTR[count] > arrPTR[count+1])
{
*temp = arrPTR[count];
arrPTR[count] = arrPTR[count+1];
arrPTR[count+1] = *temp;
*swap = true;
}
}
}while (swap);
}
OP 'temp'はポインタでなければならないと述べましたか?これはポインタではなく、このコードの 'int'です。 –
'temp 'は質問の中のポインタでなければならないが、あなたの答えの新しいコメントによって今はおそらくいくつかの"興味深い要件 "が与えられていて、あなたがそれをカバーしていたことを参照してください;-) – AJG85