Я все еще новичок в этой теме, но может кто-нибудь объяснить мне, как я могу скопировать один символ * в другой символ ** в качестве параметра без утечек памяти?
void Hardware::copyString(char** dest, const char* source)
{
size_t length = strlen(source);
auto string = new char[length+1];
strncpy(string, source, length);
string[length] = '\0';
*dest = string;
//need to be freed
free(string); //if i free here the data would getting lost
}
и ctor:
Hardware::Hardware(const char* name, int cost)
{
copyString(&name_, name);
cost_ = cost;
}
main.cpp
Hardware hard("CPU", 250)
Где я должен освободить это без утечек памяти и иметь правильный вывод?