Non è possibile ridimensionare l'array, è possibile solo assegnarne uno nuovo (con una dimensione maggiore) e copiare i contenuti del vecchio array. Se non si desidera utilizzare std::vector
(per qualche motivo) Ecco il codice a esso:
int size = 10;
int* arr = new int[size];
void resize() {
size_t newSize = size * 2;
int* newArr = new int[newSize];
memcpy(newArr, arr, size * sizeof(int));
size = newSize;
delete [] arr;
arr = newArr;
}
codice è da qui http://www.cplusplus.com/forum/general/11111/.
fonte
2010-09-20 08:21:13
C'è qualche ragione per cui non usi std :: vector? – Liton