v = new Foo();
}
Foo* f2(){
Foo* v = new Foo();
return v;
}
void func(){
Foo* foo1, foo2;
foo1 = foo2 = nullptr;
f1(foo1);
foo2 = f2();
}
Ни в чем
первая функция менее безопасная
У тебя только в f1 гарантированная утечка памяти
Ну ты не присвоил указатель в первой функции никуда
в f1 присваивание v ничего не дает, поскольку указатель передан по значению (итог, утечка), в f2 созданный объект передается наружу, но не удаляется, тоже утечка
ну и плюс ко всему там ошибка
Обсуждают сегодня