Tôi đã thấy tài nguyên hiển thị hai cách phân bổ bộ nhớ trong khi vẫn đảm bảo đủ bộ nhớ để hoàn thành thao tác.cách phân bổ bộ nhớ đúng trong C++ trong điều kiện bộ nhớ thấp
1) quấn hoạt động 'mới' trong một try/catch vì nó sẽ trở std :: bad_alloc (?)
try { ptr = new unsigned char[num_bytes]; } catch(...) {}
2) kiểm tra con trỏ giao for null sau ca phẫu thuật 'mới' .
ptr = new unsigned char[num_bytes]; if(ptr == NULL) { ... }
Điều nào đúng? Cả hai đều làm việc? Tôi có cần phải làm cả 1 và 2 không?
Cảm ơn,
jbu
oooh đây có lẽ là những gì tôi nên làm thay vào đó, để giảm số lượng mã tôi sẽ cần phải thay đổi. – jbu
@jbu: cũng lưu ý rằng một số mã được biên dịch với các ngoại lệ. Đây không phải là tiêu chuẩn, và trong trường hợp này bạn sẽ cần phải đọc doc trình biên dịch của bạn, nhưng rất có thể là sau đó 'new' sẽ trả về 0 nếu nó không thành công. –