Динамическое распределение памяти

Содержание *

Введение *

Руководство пользователя *

Задание № 2 *

Задание № 6 *

Задание № 8 *

Задание № 10 *

Задание № 12 *

Задание № 14 *

Задание № 16 *

Руководство программиста *

Задание № 2 *

Задание № 6 *

Задание № 8 *

Задание № 10 *

Задание № 12 *

Задание № 14 *

Задание № 16 *

Библиографический список *

Введение

Целью работы является демонстрация работы с динамической памятью на примере программ разработанных к заданиям 2, 6, 8, 10, 12, 14, 16 из методического указания [1].

Динамическое распределение памяти предоставляет программисту большие возможности при обращении к ресурсам памяти в процессе выполнения программы, и корректная работа программы с динамической памятью в существенной степени зависит от знания функций для работы с ней.

Руководство пользователя

Задание № 2

Для того чтобы убедиться что для каждого из однобайтовых данных в куче выделено 16 байт т. е. 1 параграф нужно сравнить три адреса, которые появяться на экран в рез-те действия этой программы. Если числа в этих адресах стоящие до двоеточия увеличиваютя (от первого к последнему) на еденичку, то это означает что на каждый блок выделен один параграф в куче = 16 байт. Для получения этих адресов в отладчике достаточно нажать Alt+F4 (в режиме отладчика) затем в появившемся запросе ввести *x появится меню, вверху которого и будет нужный адрес, аналогично для *y, *z.

Задание № 6

Программа выделяет память под 20 переменных типа int, заполняет их случайными числами из интервала [-3;7] и выводит их на экран.

Задание № 8

Программа хранит матрицы в виде двух структур:

Struct Matr1{int m, n; int *ptr};

Struct Matr2{int m, n; int **ptr};

И выделяет память под них с помощью следующих функций:

Int DinMatr1(Matr1 *matr);

Int DinMatr2(Matr2 *matr);

Задание № 10

Программа получает с клавиатуры натуральные числа, сохраняя их в куче, конец ввода — число 0. По окончании ввода числа выводятся на экран.

Задание № 12