Man kan ikke ændre størrelsen på et array.
Man kan allokere et plads og bruge en pointer:
int *p = new int[10];
Hvis man så får brug for mere plads kan man:
int *s = new int [20];
std::copy(p, &p[10], s);
delete p;
p = s;
Man kan også vælge en std::vector, den kan gro som man ønsker, og opfører sig på mange måder som et array.
Man kan også bruge malloc/realloc/free
Hey bertel
Jeg har ellers lige kodet lidt og fundet memcpy. Gør copy det samme?
Altså jeg ville også lave et nyt array og gøre den dobbelt så stor som den første.
#include <iostream.h>
#include <stdlib.h>
#define maks 10
int main()
{
int* a = new int[maks];
for(int i=0; i <= 10-1; i++)
{
a[i] = i;
}
int* b = new int[maks*2];
memcpy(b,a,2*maks);
b[10]=1337;
for(int i = 0; i <= 18; i++) cout << b[i]<<endl;
delete [] b;
delete [] a;
system("PAUSE");
return 0;
}
er hvad jeg lige fik fikset sammen.
Slot - All your base are belong to us
http://www.sigsys.dk