Похожие чаты

Hi there Does deleting the 'instance' on line 24 result in

deleting all data in the 'func' function (including 'output' and also static 'x') ?

20 ответов

38 просмотров

output is the only thing you allocate, so it's the only thing you need to delete from inside func(). BUT this still leaks memory, because the original instance is overwritten when you reassign instance, so that is never deleted

A* instance = new A; delete instance; instance = instance->func(); delete instance;

L21 calls new L11 calls new (called by L22) So 2 calls to delete are required to clean up

To answer your question; no Deleting instance results in output being deleted. int number is basically automatically deleted when the function returns, static int x is never deleted, and never created, there's just one x for the entire lifetime of the program

Sahand-🏔️ Автор вопроса
Thomas
L21 calls new L11 calls new (called by L22) So 2 c...

Yes, technically I need to delete 'output' if I want to deallocate it. But also I need it to return from my function.. actually I will be happy if it gets deleted by deleting the 'instance' variable, so the memory leaks will be avoided ....

Why should deleting the object instance delete all data in func?

Sahand 🏔️
Yes, technically I need to delete 'output' if I wa...

Are you on Linux? I think you should try ltrace

Sahand-🏔️ Автор вопроса
Azadi
Why should deleting the object instance delete all...

I thought deleting instance result in deleting on-heap-allocated data too .. that's my guess

Sahand 🏔️
I thought deleting instance result in deleting on-...

It does, but variables in functions are not on-heap

Sahand-🏔️ Автор вопроса
Sahand-🏔️ Автор вопроса
Thomas
output is the only thing you allocate, so it's the...

What do you mean by "when you reassign instance" ? Like what I did on line 22 here ? https://t.me/thedevs_c/246528

Sahand 🏔️
I thought deleting instance result in deleting on-...

delete will free the memory allocated by new. So in this case yes. As for the static variable,it remains until your program terminates.

Sahand-🏔️ Автор вопроса
Thomas
output is the only thing you allocate, so it's the...

Here you said "that is never deleted" but here https://t.me/thedevs_c/246534 you also said deleting instance results in deleting output... So .. ? I'm a bit confused 😬 Will output be deleted by deleting instance?

// this is never deleted A *instance = new A; A *output = new A; instance = output; // output is deleted delete instance;

Thomas
// this is never deleted A *instance = new A; A *...

instance = output; overwrites the original address of instance, and then the original can never be deleted, because you lost the address to it

Sahand-🏔️ Автор вопроса
Thomas
instance = output; overwrites the original address...

Oh now I understand A* instance = new A; A* ptr = instance; instance = instance->func(); /* some code */ // GC delete instance; instance = ptr; delete instance; This one also works right ?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Карта сайта