Bạn không thể thay đổi kích cỡ mảng, bạn chỉ có thể cấp phát mảng mới (có kích thước lớn hơn) và sao chép nội dung của mảng cũ. Nếu bạn không muốn sử dụng std::vector
(đối với một số lý do) đây là đoạn code để nó:
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;
}
code đang từ đây http://www.cplusplus.com/forum/general/11111/.
Nguồn
2010-09-20 08:21:13
Có lý do nào khiến bạn không sử dụng tiêu chuẩn :: vector không? – Liton