/* * A dinamikus memóriában lefoglalunk valamekkora méretű tárterületet, * ha a tárterület betelne, újabbat foglalunk le és átmásoljuk az eddig * beolvasott elemeket. */ #include <iostream> using namespace std; void grow( int *&tp, int& sz); int main() { int size = 10; int *tp = new int[size]; int i = 0; while ( cin >> tp[i] ) { ++i; if ( i == size ) grow( tp, size); } for ( int j = i-1; j >= 0; --j) { cout << tp[j] << endl; } delete [] tp; return 0; } void grow( int *&tp, int& sz) { int *newtp = new int[2*sz]; for ( int ii = 0; ii < sz; ++ii) { newtp[ii] = tp[ii]; } delete [] tp; sz = 2*sz; tp = newtp; }