Nên sử dụng cách cấp phát động nào?

  1. Cấp phát có truyền kích thước tối đa: int *a=new int[100];
  2. Cấp phát không truyền kích thước: int *a=new int();

Theo em thấy thì khi dùng cách 1 nếu mình muốn thêm phần tử thứ 101 thì phải cấp phát thêm bộ nhớ và phải copy lại 100 phần tử trước đó. Còn khi dùng cách 2 thì em không cần phải quan tâm đến phần tử muốn thêm nằm ở thứ mấy. Và cũng không cần cấp phát thêm.
Mọi người cho em hỏi có đúng như vậy không ạ ? Và nếu vậy thì dùng cách 2 là tốt hơn ạ ?

Hai cái này không so được :smiley: nói như bạn tức là đặt 100 tên biến đó.

Còn std::vector-backed thì nó vẫn là cách 1 thôi.

3 Likes

Cách 1: cấp phát 100 phần tử.
Cách 2: cấp phát 1 phần tử.

Định mua 1 miếng đất rồi lấn sang 99 miếng đất khác của hàng xóm?

Muốn nó tự tăng thì dùng std::vector.

5 Likes

Bézt quét sờn i vờ

anyway, sài vector cho dễ nà

1 Like

Cấp phát bộ nhớ thì cứ lấy đất đai làm ví dụ thì đảm bảo dễ hiểu ::)))

2 Likes

Các anh cho em hỏi là cách 1 để khai báo mảng có 100 phần tử còn cách 2 là phải khởi tạo(char arr[] ={“Abcs”} ) mảng arr có 5 phần tử đúng không ạ.

Cách khai báo :

char arr[] = "Xin chao !";
char arr[] = {1,2,3....}.

Để khai báo mảng mà số phần tử sẽ được tự tính dựa vào số lượng phần tử phía bên phải dấu =.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?