What represents dynamic allocation in C?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "int* a = (int*)malloc(5*sizeof(int));". Cấp phát động nghĩa là xin bộ nhớ lúc chương trình đang chạy, với kích thước có thể tính ra tại thời điểm đó, và vùng xin được nằm trên heap, sống tới khi được giải phóng. Hàm malloc làm đúng việc đó: nhận số byte cần, trả về địa chỉ đầu vùng nhớ hoặc con trỏ rỗng khi thất bại, nên phải gán vào một con trỏ. Lựa chọn "int a[5];" là mảng tự động, kích thước cố định ghi sẵn lúc dịch và vùng nhớ bị thu hồi khi ra khỏi khối. Lựa chọn "int a[5][5];" chỉ là mảng hai chiều, bản chất vẫn là cấp phát theo khai báo. Lựa chọn "free(a);" đứng ở đầu bên kia của vòng đời: nó trả vùng nhớ đã cấp phát về cho hệ thống, không xin thêm ô nhớ nào.

Cùng phần 5

Xuất hiện trong 1 bộ đề