01/10/2018, 00:02
Malloc và realloc
Khi xóa 1 phần tử trong mảng động, số phần tử trong mảng không tự động giảm đi, vậy phải làm thế nào để xuất mảng mới ra với số phần tử là n-1.( ko dùng for(i=0;i<n-1;i++)
Bài liên quan
Trong C thì dùng hàm realloc nhé:
realloc(<bộ_nhớ_cần_thay_đổi>, <số ô nhớ muốn thay đổi> * <độ dài của 1 ô nhớ>);
VD: Bạn có mảng
arr
gồm 5 phần tử thuộc kiểuint
, bạn muốn xóa đi ô cuối, tức là còn 4 phần tử, thì bạn phải dịch phần tử cần xóa xuống cuối mảng rồi để dòng này:realloc(arr, (n - 1) * sizeof(int));
(n là số lượng phần tử mảngarr
)Còn trong C++ thì không có hàm hỗ trợ cho việc này. Lập trình viên có thể tự viết ra hàm riêng cho mình.
nếu dùng vòng for, mỗi lần cấp thêm 1 phần tử thì xài cái nào vậy ạ
Không nên. Bạn nên viết hay dùng cấu trúc tự co giãn
Nhờ xem hộ em cái này ạ, em thử xài realloc. dùng 2 vòng for xuất ra dòng printf giống nhau, sao lại ra kết quả khác nhau vậy ạ
Cú pháp của malloc giống realloc, với tham số đều là số byte