Re[3]: Почему CLion и VS не предупреждают?
От: DiPaolo Россия  
Дата: 03.05.23 14:00
Оценка:
S>А на то что тут c->V1 = t; — присваивается стековая область памяти, которая при выходе из функции как бы считается освобожденной?



#include <iostream>

class C1 {
public:
    const char* V1;
};

C1* fun2()
{
    char t[2];
    t[0] = 't';
    t[1] = 0;

    C1* c = new C1(); // <-- выделил память
    c->V1 = t;

    return c; // <-- вернул указатель на выделенную память
}

int main()
{
    C1* t = fun2();
    std::cout << t->V1 << "\n";
} // <-- память из-под t никто не освободил
Патриот здравого смысла
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.