Указатели — одна из сложных, но мощных сторон C++. Разберем их использование и подводные камни:
1. Указатели и динамическая память Использование
new
и delete
для управления памятью:int* ptr = new int(42);
std::cout << *ptr << std::endl; // 42
delete ptr; // Освобождение памяти
2. Умные указатели unique_ptr
Автоматизируют управление памятью, предотвращая утечки:
#include <memory>
std::unique_ptr<int> ptr = std::make_unique<int>(42);
std::cout << *ptr << std::endl; // 42
3. Передача указателя на функцию
Указатели позволяют передавать функции как параметры:
void apply(int (*func)(int), int x) {
std::cout << func(x) << std::endl;
}
int square(int x) { return x * x; }
apply(square, 5); // 25
Этот пример демонстрирует передачу функции для обработки данных