Я прочитал в стандартах кодирования Google c ++, что Google не использует исключения. Если исключение не используется, как вы освобождаете память при возникновении ошибок в вашей программе?
Например, f () вызывает g (), и если в g () есть ошибка, я должен освободить всю память, выделенную в g (), а затем вызвать исключение для f (). Как только f () перехватит исключение, f () освободит всю память, выделенную в f (), и выйдет из программы.
Если исключение не используется и если в g () есть ошибка, могу ли я принудительно завершить работу exit(0)
, и будет ли программа c ++ достаточно умной, чтобы освободить всю выделенную память? Я предполагаю, что, поскольку c ++ поддерживает стек и кучу, и после выхода из программы c ++ автоматически освобождает как стек, так и кучу?