Đặt toàn bộ giá trị của mảng mà con trỏ trỏ đến = 0 ( không dùng vòng lặp)

chào các bạn
mình thấy mảng có thể vừa khai báo và khởi tạo như sau
int a [8] = {};
tất cả phần từ của a đều = 0
nhưng giờ bài toán của mình muốn tối ưu nên phải cấp phát động
mình sử dụng con trỏ đến mảng

int *b = new int[n];
giờ làm sao để đặt toàn bộ giá trị của mảng mà con trỏ trỏ đến = 0 cả nhỉ, nhưng k sử dụng vòng lặp
có thể làm tương tự như mảng không
mình thử ngu vài cái như

int *b = new int[n ]= {};
nhưng k được
xin cam on

Dùng calloc sẽ cấp phát vùng nhớ với giá trị khởi tạo = 0, nhưng hàm này cũng đánh giá là chậm hơn malloc vì … tốn thời gian init :smiley:
Tham khảo thêm ở đây để thấy sự khác biệt malloc và calloc

1 Like

trương hợp mình dùng new trong c++ k được bạn à

char* buffer = (char*)malloc(100);
memset(buffer,0,100);
ngay duoi.

1 Like

new vẫn có thể khởi tạo 0 được
int *a = new int[n]();

tham khảo :))

1 Like

trường hơp muốn khởi tại 1 giá trị khác 0 , ví dụ 1 cho toàn bổ mảng mà con trỏ trỏ đên thì có cách nào k bạn (anh ) nhỉ

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