Есть функция (C, std=c99), которая работает внутри себя с динамическими данными (выделение памяти, работа с указателями и т.д.) и практически на каждом шаге проверяет корректность работы: if (cond1) { // e.g., malloc() returned NULL free(val1); free(val2); free_struct(s_val1); return false; } ... if (cond2) { // e.g., realloc() returned NULL free(val1); ... free(val10); free_struct(s_val); return false; } Откровенно говоря, меня эта вербозность несколько анноит, однако, отказываться от проверки ошибок в runtime тоже не хочется. Хотелось бы узнать, как принято решать такие usecases -- думаю, что они не такие уж и редкие? На ум приходит либо использование меток (using goto), или просто делать банальный stdlib.h::abort() вместо освобождения ресурсов, однако, мне кажется это не совсем правильно (да и мой исходный вариант, возможно тоже). Поделитесь опытом, пожалуйста? :) Спасибо.

Ответ на:
комментарий
от fghj


Ответ на:
комментарий
от anonymous


Ответ на:
комментарий
от execve

Ответ на:
комментарий
от execve

Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от fghj

Ответ на:
комментарий
от execve



Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от execve

Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от execve

Ответ на:
комментарий
от fghj

Ответ на:
комментарий
от anonymous


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Перемещение pthread_mutex_t в памяти (2014)
- Форум dlsym и malloc (2011)
- Форум обработка ошибок (2005)
- Форум *** glibc detected *** free(): invalid next size (fast): 0x0804a028 *** (2005)
- Форум Про обработку ошибок (2013)
- Форум стиль обработки ошибок (2012)
- Форум [C] Обработка ошибок (2009)
- Форум Обработка ошибок PHP (2010)
- Форум Освобождение ресурсов при ошибке (2014)
- Форум Calloc нынче ни на что не влияет что-ли? (2017)