动态内存分配的任务。在第三次迭代中出现错误,我无法理解问题所在。
抛出异常:读取访问冲突。arr为 0x1118235。
#include <iostream>
using std::cin;
using std::cout;
int main()
{
setlocale(LC_ALL, "rus");
int a = 0;
int* arr = new int[1];
int* temp_arr;
int index = 0;
while (a>=0)
{
cout << "\nВведите целое число: ";
cin >> a;
if (a<0)
{
break;
}
if (index == 0)
{
arr[index] = a;
cout << arr[index];
index++;
}
else
{
temp_arr = new int[index];
for (int i = 0; i < index; i++) //копируем массив
{
temp_arr[i] = arr[i];//Ошибка здесь, но не могу понять почему
}
delete[] arr;
int* arr = new int[index + 1];
for (int i = 0; i < index; i++) //копируем массив
{
arr[i] = temp_arr[i];
}
arr[index] = a;
delete[] temp_arr;
index++;
for (int i = 0; i < index; i++)
{
cout << arr[i] << " ";
}
}
}
delete[] arr;
}