Унифицированная локальная переменная и помощь в исправлении

Я изучаю указатели и оператор 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);
 }
0
задан sircrisp 16 February 2012 в 16:13
поделиться