Читать курсовая по информатике, вычислительной технике, телекоммуникациям: "Динамическое распределение памяти" Страница 1

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

Министерство высшего и профессионального образования РФ

Уральский государственный технический университет

Радиотехнический факультет

Кафедра “Автоматика и информационные технологии” Динамическое распределение памятиКурсовая работа по дисциплине

основы алгоритмизации и программирования Выполнил:студент Золин А.С.

группаР-290Б

Проверил: Трофимов С.П.

Дата: Екатеринбург 2000

Содержание

Содержание 1 Введение 2 Руководство пользователя 3 Задание №2 3 Задание №6 3 Задание №8 3 Задание №10 3 Задание №12 3 Задание №14 3 Задание №16 3 Руководство программиста 4 Задание №2 4 Задание №6 4 Задание №8 5 Задание №10 7 Задание №12 8 Задание №14 10 Задание №16 11 Библиографический список 14

Введение

Целью работы является демонстрация работы с динамической памятью на примере программ разработанных к заданиям 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

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

Задание №14

Программа вычисляет общий размер свободной кучи.

Задание №16

Программа выполняет считывание матрицы произвольных размеров из файла (разделителями являются пробелы), вывод этой матрицы на экран, а также запись в файл.

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

В этом разделе будут приведены листинги программ с комментариями.

Задание №2

#include

#include

#include

int main(void)

{

char *x,*y,*z;//Объявление переменных

x=(char *)malloc(sizeof(char));//Выделение динамической памяти для *x

y=(char *)malloc(sizeof(char));// --//-- *y

z=(char *)malloc(sizeof(char));// --//-- *z

clrscr();// Очистка экрана

printf("Adress of *x=%p\n",x); // Вывод на экран адреса начала блока для *x

printf("Adress of *y=%p\n",y); // --//-- *y

printf("Adress of *z=%p\n",z); // --//-- *z

free (z);// Освобождение блока выделенного для *z

free (y);// --//-- *y

free (x);// --//-- *x

/*

Для того чтобы убедиться что для


Интересная статья: Основы написания курсовой работы