- Код: Выделить всё • Развернуть
void *pointer = malloc( ... );
free( pointer );
...
if( pointer ) // pointer может быть не равен NULL после очистки, либо нужно вручную pointer = NULL после free
{
...
- Код: Выделить всё • Развернуть
void *pointer = malloc( ... );
my_free( &pointer );
...
if( pointer ) // pointer равен NULL, тк в методе my_free мы его почистили
{
...
Добавлено спустя 8 минут 52 секунды:
- Код: Выделить всё • Развернуть
static bool parse(struct parser_vars *self, uint8_t c, struct orfareply *reply)
Вставь проверку на валидность указателей
- Код: Выделить всё • Развернуть
struct orfadev *orfa_open(char *port, int baudrate)
так же проверка на указатель.
Сначала проверь возможность открытия open(port, O_RDWR|O_NOCTTY|O_NDELAY) а потом уже делай malloc(sizeof(struct orfadev))
- Код: Выделить всё • Развернуть
orfa_close(struct orfadev *device)
Вставь проверку на валидность указателя
Оберни возвратное значение close, чтобы в консоль выводилось сообщение что проблема при закрытии, иногда очень помогает.
Вставь проверку на валидность указателя во всех остальных функциях