Используйте new/delete вместо malloc/calloc/free Потенциальная проблема: утечка памяти. Не выделяйте память в стиле Си через функции malloc/calloc/free. Используйте операторы new/delete. Неправильно: Foo* foo = (Foo*)malloc(sizeof(Foo)); Правильно: auto foo = new Foo();