Я пишу приложение для кеширования, которое потребляет большие объемы памяти.
Надеюсь, я достаточно хорошо справляюсь с моей памятью, но я просто думаю о том, что делать, если у меня заканчивается память.
Если вызов для выделения даже простого объекта завершается с ошибкой, возможно, что даже вызов syslog также потерпит неудачу?
EDIT: Хорошо, возможно, я должен уточнить этот вопрос. Если malloc или new возвращает значение NULL или 0L, это по существу означает, что вызов был неудачным, и по какой-то причине он не может дать вам память. Итак, что было бы разумным в этом случае?
EDIT2: Я только понял, что вызов "нового" может вызвать исключение. Это можно поймать на более высоком уровне, поэтому я могу, возможно, изящно выйти дальше. В этот момент его можно восстановить даже в зависимости от того, сколько памяти освобождено. По крайней мере, я должен с этой точки зрения, возможно, что-нибудь зарегистрировать. Поэтому, пока я видел код, который проверяет значение указателя после нового, это не нужно. Находясь в C, вы должны проверить возвращаемое значение для malloc.