Шпаргалки: Языки (C/C++)

Шпаргалка: C/C++

Ключевые моменты и частые ошибки, о которых стоит помнить.

Управление памятью в C

  • `malloc(size_t size)`: Выделяет `size` байт памяти. Возвращает `void*`. Не забывайте проверять на `NULL`.
  • `calloc(size_t num, size_t size)`: Выделяет память для `num` элементов размера `size` и инициализирует ее нулями.
  • `realloc(void* ptr, size_t new_size)`: Изменяет размер уже выделенного блока памяти.
  • `free(void* ptr)`: Освобождает ранее выделенную память. Ошибка "двойного освобождения" (double free) — одна из самых частых.

RAII (Resource Acquisition Is Initialization) в C++

Фундаментальный принцип C++. Ресурс (память, файл, сокет) "захватывается" в конструкторе объекта, а освобождается в деструкторе. Это гарантирует освобождение ресурса при выходе из области видимости.

// Пример с умным указателем
#include <memory>
void raii_example() {
    std::unique_ptr<MyObject> ptr = std::make_unique<MyObject>();
    // Память будет автоматически освобождена, когда ptr выйдет из области видимости
}

Разница между `struct` и `class` в C++

Единственное отличие: у `struct` члены и наследование по умолчанию `public`, а у `class` — `private`.