Я читаю целые числа из infile и добавляю их в массив int с помощью указателей.Проблемы с использованием указателей с динамическим массивом
Я прорисовывал код несколько раз, и все, кажется, течет логически, и я не получаю никаких синтаксических ошибок или предупреждений в компиляторе, поэтому я не уверен, что случилось.
Эта программа требует от нас использования массивов, а не вектора, иначе я не думаю, что у меня возникнут эти проблемы.
Теперь мой выход читает все виды винтовых. Я знаю, что это связано с указателями, но сейчас я нахожусь в недоумении.
входной_файл:
3
456
593
94
58
8
5693
211
Выход:
The items in the array are as follows.
7476376, 7475472, -17891602, 17891602, -17891602, -17891602, -17891602, -178916
collections.h
class collections
{
public:
collections();
void add(int); //adds the value to the array.
void print(); //prints item of the array comma separated.
~collections();
protected:
int arraySize;
int *array;
};
Конструктор:
collections::collections()
{
arraySize = 1;
array = new int[arraySize];
}//done
аннулируются добавить:
void collections::add(int value) //adds the value to the array.
{
//initial add to master array.
if (arraySize == 1)
{
array[0] = value;
arraySize++;
}
//every other add to master array.
else
{
//temp array.
int *tempArray = new int[(arraySize)];
//copies old array into temp array.
for (int i = 0; i < arraySize-1; i++)
{
tempArray[i] = array[i];
}
//adds new incoming value to temp array.
tempArray[(arraySize-1)] = value;
//new master array
delete [] array;
int *array = new int[arraySize];
//copies temp to master array.
for (int j =0; j < arraySize; j++)
{
array[j] = tempArray[j];
}
//cleanup
delete [] tempArray;
arraySize ++;
}
} //done
аннулируются печати:
void collections::print() //prints item of the array comma separated.
{
cout << "The items in the array are as follows.\n";
for (int i = 0; i < arraySize; i++)
{
cout << array[i] << ", ";
}
}//done
К сожалению, я знаю, что это может быть простой, но для жизни меня я не могу видеть проблему.
Это сделало это. Благодарю. Учитель сказал, чтобы не использовать векторы на этом. – Arcath