Я изучаю указатели и оператор 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);
}