Valgrind - это набор инструментов для отладки и профилирования программного обеспечения, написанного на языке C/C++. Valgrind обнаруживает ошибки в использовании памяти, утечки памяти, профилирует программы, позволяя оптимизировать их производительность.
Valgrind состоит из нескольких инструментов, каждый из которых решает свою задачу. Например,
Memcheck обнаруживает ошибки памяти, Callgrind профилирует программы, Cachegrind анализирует использование кэша процессора.В данном примере мы выделяем память под 10 целочисленных значений и записываем значение в ячейку с индексом 10, что приводит к чтению/записи за пределами выделенной памяти. Затем мы освобождаем выделенную память с помощью функции
free. Однако, ошибка не обнаруживается при компиляции и выполнении программы, но Valgrind может обнаружить ее при запуске программы.

