using std::free/malloc