ээээ, но в этом случае, если я правильно ошибаюсь, придется создавать стотыщ мильенов mystructов на каждый AddObject?
мне же по сути надо запихать:
lst->AddObject("b",(TObject*){12,13})
чтобы {12,13} создались в куче и жили своей жизнью вне зависимости от f.
То есть, lst->AddObject("a",(TObject*)1) насколько я это представляю, создает в куче вполне себе независимый int равный "1", никак не привязанный к каким-либо объявленным переменным. Зная что это именно int а не char я в любой удобный момент могу его поиметь обратно, опять-же вне зависимости от каких-либо переменных, которые к этому моменту вообще могли быть 10 раз уничтожены.
даже более того:
TStringList *lst = new TStringList();
int a=12;
lst->AddObject("a",(TObject*)a);
a=0;
int b=(int)lst->Objects[0];
Вернет мне в b 12.