01/10/2018, 00:29

Đặ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

Tung Dao viết 02:40 ngày 01/10/2018

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
Tham khảo thêm ở đây để thấy sự khác biệt malloc và calloc

HelloWorld viết 02:34 ngày 01/10/2018

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

Tao Không Ngu. viết 02:35 ngày 01/10/2018

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

Nguyễn Xuân Phúc viết 02:42 ngày 01/10/2018

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

chichi viết 02:40 ngày 01/10/2018

tham khảo :))

stackoverflow.com
dreamlax

How to initialise memory with new operator in C++?

c++, initialization, memory-management, new-operator
asked by dreamlax on 12:06AM - 05 Feb 10

HelloWorld viết 02:31 ngày 01/10/2018

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ỉ

Bài liên quan
0