i2 lab9

background image

Informatyka 1. INF & EIT. Ćwiczenie 9.

Dynamiczna alokacja pamięci

Zagadnienia:
tworzenie zmiennych dynamicznych na stercie i przypisywanie ich adresów wskaźnikom
(funkcje alokacji pamięci: malloc, calloc; operator new; funkcja zwalniania pamięci free i
operator delete); wyprowadzanie wartości wskaźników (%p); tablice dynamiczne o wymia-
rach wczytywanych z klawiatury; dostęp do tablic za pomocą wskaźników.

1. Zdefiniować wskaźniki na zmienne typu char, int, double. Za pomocą:

a) funkcji alokacji pamięci malloc,
b) operatora new,
utworzyć zmienne dynamiczne typu char, int, double i zapamiętać ich adresy w
odpowiednich wskaźnikach. Wczytać z klawiatury dane do utworzonych zmiennych
dynamicznych. Wyprowadzić wartości wskaźników oraz zawartości zmiennych
wskazywanych. Wykorzystując funkcję free dla a) i operator delete dla b) zwolnić pamięć
przydzieloną zmiennym.


2. Utworzyć tablicę dynamiczną złożoną z n elementów typu int, gdzie n jest zmienną

wczytywaną z klawiatury. Zadanie zrealizować za pomocą:
a) funkcji alokacji pamięci malloc,
b) operatora new.
Zainicjować tablicę losowymi liczbami całkowitymi należącymi do zbioru {-1, 0, 1}.
Wyprowadzić zawartość tablicy na ekran. Obliczyć średnią arytmetyczną elementów
tablicy. Zwolnić przydzieloną pamięć dla a) i b).


3. Opracować program, który utworzy dynamicznie tablicę typu char o rozmiarze n wczyty-

wanym z klawiatury.
a) Utworzyć tablicę t1 za pomocą operatora new.
b) Utworzyć tablicę t2 za pomocą funkcji malloc.
Jeżeli operacja przydziału pamięci dla t1 i t2 zakończyła się pomyślnie (wskaźniki t1 i t2
są różne od NULL), to zainicjować tablicę t1 losowymi znakami o kodach należących do
przedziału [65,90]. Wyprowadzić zawartość tablicy t1 na ekran. Przekopiować tablicę t1
do t2 wykorzystując standardową funkcję memmove lub memcpy. Wyprowadzić zawar-
tość tablicy t2 na ekran. Przed zakończeniem programu zwolnić pamięć przydzieloną dla
tablic t1 i t2.


4. Opracować funkcje:

a) tworzącą dynamiczną tablicę 2-wymiarową typu int A[nw][nk] o liczbie wierszy i

liczbie kolumn wczytywanych do zmiennych int nw, nk; funkcja typu int** zwraca
adres początku tablicy dwuindeksowej; zadanie zrealizować tworząc dynamiczną
tablicę złożoną z nw wskaźników na dynamiczne tablice nk liczb całkowitych; funkcja
zwraca NULL jeśli alokacja nie powiodła się; prototyp funkcji: int **pdw(int nw, int
nk);

b) zwalniającą pamięć przydzieloną dla tablicy dwuindeksowej w sposób określony w a);

funkcja zwraca wartość A=NULL; prototyp funkcji: int **usun_dw(int **A, int nw).


W programie głównym utworzyć dynamiczną tablicę dwuwymiarową o wymiarach nw i
nk, gdzie nw i nk są wczytywane z klawiatury. Zainicjować tablicę losowymi wartościami
i wyprowadzić na ekran. Zwolnić przydzieloną pamięć.


Wyszukiwarka

Podobne podstrony:
Lab9
wykład 1 i2
i2 lab13
I2 Elastyczny system wymiany chwytaków
lab9 2 6
Lab9 5 1
Rafał Polak 12k2 lab9, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
lwtm I2
pytanie i2
LAB9, 1 STUDIA - Informatyka Politechnika Koszalińska, Labki, fizyka1, fiza, fizyka
i2
lab9 procesory sygnalowe, LABORATORIUM
Pobrane 1 i2
pietraĹ› punkt 1 i2
2 4 i2 instrukt
lab9, Przekazywanie parametrów, struktura programu
lab9, Przekazywanie parametrów, struktura programu
i2 lab5

więcej podobnych podstron