Tôi đang phát triển ứng dụng cho một hệ thống nhúng có bộ nhớ hạn chế (Tegra 2) trong C++. Tôi đang xử lý kết quả NULL của new
và new[]
trong suốt mã mà đôi khi xảy ra nhưng ứng dụng có thể xử lý việc này.SIGKILL trong khi cấp phát bộ nhớ trong C++
Vấn đề là hệ thống sẽ giết chết quá trình bằng SIGKILL nếu bộ nhớ hết hoàn toàn. Tôi có thể bằng cách nào đó nói rằng new
chỉ nên trả về NULL thay vì giết chết quá trình?
Tôi không chắc chắn, nhưng bạn có thể thử sử dụng "mới (nothrow)" http://www.cplusplus.com/reference/std/ new/nothrow/ –
Tôi làm trong hầu hết các trường hợp, chắc chắn khi tôi phân bổ số lượng bộ nhớ lớn hơn. Trong một số trường hợp, tôi đã quá lười để viết lại mới (std :: nothrow) nhưng tôi cho rằng quá trình sẽ chấm dứt với ngoại lệ thay vì SIGKILL. – Blackhex