void deallocate(pointer p, size_type n);
- Yêu cầu: p phải là một giá trị con trỏ lấy từ phân bổ(). n sẽ bằng giá trị được chuyển như đối số đầu tiên cho lời gọi phân bổ trả về p.
- Hiệu ứng: Phân bổ dung lượng được tham chiếu bằng p.
- Ghi chú: Sử dụng :: toán tử xóa (void *) (18.6.1), nhưng không xác định khi hàm này được gọi.
Điều gì sẽ xảy ra nếu n
không bằng giá trị được chuyển làm giá trị đầu tiên cho yêu cầu phân bổ trả lại p
? Không deallocate? Ném std::bad_alloc
? ...
CHỈNH SỬA: Điều tôi thực sự muốn nói với "điều gì sẽ xảy ra" là: Có thể ném hoặc khẳng định trong triển khai tùy chỉnh không?
Btw .: Việc triển khai Microsoft bỏ qua kích thước đã qua ... – 0xbadf00d
@FrEEzE - Việc triển khai có thể bỏ qua tham số vì nó biết nó ** có **. Các triển khai khác có thể sử dụng nó, nếu chúng không nhớ chính kích thước phân bổ. –
Bỏ qua kích thước là một trong các loại hành vi không xác định hợp lệ. –