Bạn có cần malloc trong C ++ không?
Bạn có cần malloc trong C ++ không?

Video: Bạn có cần malloc trong C ++ không?

Video: Bạn có cần malloc trong C ++ không?
Video: BÀI 45 LẬP TRÌNH C - HƯỚNG DẪN SỬ DỤNG HÀM MALLOC ĐỂ CẬP PHÁT BỘ NHỚ TRONG LẬP TRÌNH C 2024, Có thể
Anonim

Bạn sử dụng malloc khi nào bạn cần để phân bổ các đối tượng cần phải tồn tại ngoài vòng đời thực thi của khối hiện tại (trong đó bản sao trả lại sẽ đắt tiền), hoặc nếu bạn cần phân bổ bộ nhớ lớn hơn kích thước của ngăn xếp đó (nghĩa là: một mảng ngăn xếp cục bộ 3mb là một ý tưởng tồi).

Ngoài ra, bạn có cần phải malloc trong C ++ không?

Sự khác biệt rất đơn giản: malloc cấp phát bộ nhớ, trong khi mới cấp phát bộ nhớ AND gọi hàm tạo của đối tượng bạn đang cấp phát bộ nhớ cho. Vì vậy, trừ khi bạn bị hạn chế ở C, bạn nên không bao giờ sử dụng malloc , đặc biệt là khi giao dịch với C ++ các đối tượng.

Người ta cũng có thể hỏi, điểm của malloc là gì? Trong C, hàm thư viện malloc được sử dụng để cấp phát một khối bộ nhớ trên heap. Chương trình truy cập khối bộ nhớ này thông qua một con trỏ malloc lợi nhuận. Khi bộ nhớ không còn cần thiết nữa, con trỏ sẽ được chuyển đến chỗ trống, con trỏ sẽ phân bổ bộ nhớ để nó có thể được sử dụng cho các mục đích khác.

Theo cách này, có malloc trong C ++ không?

Malloc () hàm trong C ++ phân bổ Một khối bộ nhớ chưa khởi tạo và trả về Một con trỏ void tới NS byte đầu tiên của NS khối bộ nhớ được cấp phát nếu NS phân bổ thành công. Nếu như NS kích thước bằng 0, NS giá trị trả về phụ thuộc vào NS thực hiện NS thư viện. Nó có thể có hoặc không Một con trỏ null.

Làm thế nào để bạn xác định một cấu trúc?

Đối với những gì bạn muốn, bạn cần hai malloc () NS. cấu trúc Véc tơ * y = malloc (sizeof * y); / * Lưu ý con trỏ * / y-> x = calloc (10, sizeof * y-> x); Trong dòng đầu tiên, bạn cấp phát bộ nhớ cho một đối tượng Vector. malloc () trả về một con trỏ đến bộ nhớ được cấp phát, vì vậy y phải là một con trỏ Vector.