16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

W obszarze kodu (I.) znajdują się instrukcje. Na stosie<br />

przechowywane są:<br />

* zmienne lokalne,<br />

* argumenty przekazywane funkcji w momencie jej wywołania,<br />

* adresy powrotne dla funkcji (RET == CS:IP).<br />

Na stercie natomiast przy pomocy funkcji (a jak przekonamy się<br />

za chwilę - także operatorów <strong>C++</strong>) możemy przydzielać pamięć dla<br />

różnych obiektów tworzonych w czasie pracy programu (ang.<br />

run-time memory allocation) - np. tworzyć bufory dla łańcuchów,<br />

tablic, struktur itp.. Zwróć uwagę, że obszar V. - POLE NICZYJE<br />

może być w czasie pracy programu stopniowo udostępniany dla<br />

stosu (który rozrasta się "w górę"), albo dla sterty (która<br />

rozrasta się "w dół"). W przykładowym programie poniżej podano,<br />

w którym obszarze pamięci zostanie umieszczony dany element<br />

programu.<br />

# include <br />

int a;<br />

int b = 6;<br />

main()<br />

{<br />

char *Dane;<br />

...<br />

float lokalna;<br />

...<br />

Dane = malloc(16);<br />

...<br />

}<br />

// III.<br />

// II.<br />

// VI.<br />

// IV.<br />

OPERATORY new I delete.<br />

Operatory new i delete działają podobnie do pary funkcji<br />

malloc() - free(). Pierwszy przyporządkowuje - drugi zwalnia<br />

pamięć. Dokładniej rzecz biorąc<br />

- operator new może zostać zastosowany wraz ze wskaźnikiem do<br />

bloku danych określonego typu:<br />

* struktury danych,<br />

* tablicy, itp. (wkrótce zastosujemy go także w stosunku do<br />

klas i obiektów);<br />

- przyporządkowuje pamięć blokowi danych;<br />

- przypisuje począkowy adres bloku pamięci wskaźnikowi.<br />

- operator delete zwalnia pamięć przyporządkowaną poprzednio<br />

blokowi danych,<br />

Operatory new i delete mogą współdziałać z danymi wieloma typami<br />

danych (wcale nie tylko ze strukturami), jednakże rozpoczniemy<br />

do struktury Data zawierającej datę urodzenia mojej córki.<br />

[P083.CPP]<br />

- 241-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!