минифункции?
int* Func(int N)
{
int i;
int* list = new int[N];
for (i = 0; i < N; i++)
list[i] = 1;
return list;
}
Просто по моей логике получается утечка памяти, я не могу удалить его раньше, чем верну, и вернуть раньше, чем удалю
Помечай код три ` до и три после. Исправь сейчас.
Не видел, чтобы создавали динамические массивы в функциях, резонней создавать вектор или фабричную функцию с умными указателями
И ТРИ ` ПОСЛЕ!
Ни на сколько не резонно, надо -- создавай в функции, не надо -- не создавай в функции. Как тебе удобно, так и создавай. По логике тут утечки памяти НЕТ, а будет она или нет, будет зависить от окружающего кода. Конечно, в современном С++ лучше использовать std::vector или std::unique_ptr или std::shared_ptr и именно их и возвращать.
Обсуждают сегодня