Witam, zanim napisze moje pytanie to rzucę prostym kawałkiem kodu:
int main( void )
{
char* pch = new char [512];
delete pch;
}
Jak wiadomo operatory new oraz delete, to nic innego jak malloc oraz free(), tyle że korzystające dodatkowo z obiektów klasy(konstruktor / destruktor).
Moje pytanie brzmi, czy ktoś z was analizował, gdzie menedżer sterty (pomijam już rodzaj / wersję biblioteki libc, bo menedżery sterty różnie pracują) odkłada adresy obiektów klasy tj. konstruktor lub destruktor?
Drugie pytanie, jak skonstruowana jest struktura na stercie po alokacji operatorem new [] ?
Bo przy użyciu malloc jest wszystko jasne, zwrócony adres to wskaźnik na dane tego bloku, idąc dalej zwrócony adres - 4 bajty = rozmiar przydzielonego bloku, można spokojnie odkopać pola związane z mutex'ami czy też adresy następnego bloku, natomiast kiedy docieram do pamięci po alokacji operatorem New, wszystko jest rozpieprzone, nie potrafie w ogóle tego odczytać, w internecie także niewiele znalazłem na ten temat.. Ktoś mógłby pomóc?
alagner