dynamisk array i C++
Hej
Jag håller på med att som läser in ett viss antal heltal som ska lagras i en vektor som allokeras dynamiskt (d.v.s. en pekare till ett vektorutrymme). Användaren ska i en repetition kunna välja om ett nytt tal ska läsas in och programmet ska då allokera om nytt utrymme för vektorn, enligt följande algoritm:
1. Reservera en ny vektor som är ett element större än den gamla.
2. Kopiera samtliga värden från den gamla vektorn till den nya.
3. Frigör utrymmet som den gamla pekaren pekade på.
4. Tilldela pekaren (talvektorn) adressvärdet för den nya vektorn
Problemet är att jag kunde inte få den nye vectorn som jag ska spara talet i att fungera
#include <iostream>
#include <conio.h>
using namespace std;
const char ESC = 27;
int talIn(int in);
void display(int *m, int &n);
int main()
{
int t=0, i=1;
int *p = NULL;
p = new int[i];
do
{
int j=0;
p[t] = talIn(j);
++i;
++t;
cout << "Tryck valfri tangent for att fortsatta eller <ESC> for att avsluta" << endl;
}while(_getch() != ESC);
const int SIZE = i;
int arr[SIZE];
for (int v=0; v<i; v++)
{
arr[v] = p[v];
}
delete[] p;
p = NULL;
display(arr, t);
return 0;
}
int talIn(int in)
{
cout << "Skriv in ett tal: ";
cin >> in;
cout << endl;
return in;
}
void display(int *m, int &n)
{
do
{
for (int v =0 ; v<n || v!=n ; ++v)
{
cout << m[v] << endl;
}
}while (_getch() != ESC);
}
Är det nån som har en lösning på detta?
ALL hjälp uppskattas.