Динамические массивы в С - Курсовая работа

бесплатно 0
4.5 45
Объявление, выделение, освобождение памяти под динамические массивы. Обращение к элементам. Решение задач с использованием динамических массивов на языке C . Разработка и реализация программы для формирования и обработки динамического двумерного массива.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Знания опережают время, поэтому мы все чаще наблюдаем развитие какой-либо технологии или выход в свет очередного компьютерного новшества. Это программисты, или люди, которые занимаются разработкой программных продуктов. По своим функциональным возможностям Си должен был заменить язык Си ввиду недостаточной функциональности. Основное новшество, добавленное в язык Си , это большой набор встроенных библиотек и возможность работы с объектно-ориентированным программированием. С уверенностью можно отметить, что язык Си поистине великий язык для успешного старта в области программирования [3].Массивы используются в том случае, когда над группой величин одинакового типа требуется выполнять однообразные действия. Использованию массива в программе предшествует его объявление, резервирующее под массив определенное количество памяти. При объявлении массива следует указать его имя, размер (количество элементов) и тип элементов: Следует отметить, что размер массива не может быть изменен в процессе работы программы. В следующем примере объявляется массив, состоящий из 10 элементов типа int: Размер массива определяется некоторой целочисленной константой.Обращение к элементу массива осуществляется по имени массива и порядковому номеру элемента - индексу. Индекс указывается в квадратных скобках после имени массива.На этапе разработки программы не всегда возможно определить точное количество элементов массива, которое потребуется при выполнении программы. В качестве решения данной проблемы можно объявить массив с заведомо большим размером, чем может потребоваться на этапе выполнения программы, и, впоследствии, работать только с частью из этих элементов. В таком случае массив будет характеризоваться двумя размерами: фактическим и рабочим. Фактический размер массива - размер, указанный при объявлении массива - максимальное количество элементов с которым может работать программа. Рабочий размер массива и значения его элементов определяются пользователем в процессе работы программы.Массивы, рассмотренные нами выше, являются одномерными. В общем случае, массивы могут иметь несколько измерений.Указатель - переменная, значением которой является адрес памяти, по которому хранится объект определенного типа. По этому адресу (указателю) храниться значение типа type. По этому адресу будет храниться переменная типа int. Объявляем указатели с именами x и z, которые указывают на переменные типа float. записывает в переменную adr_a адрес переменной a, переменная adr_адолжна быть указателем на тип float.С помощью указателей в Си можно выделить участок памяти (динамический массив) заданного размера для хранения данных определенного типа. Описать указатель (например, переменную p) определенного типа. Начиная с адреса, определенного указателем, с помощью функций calloc, malloc или операции new выделить участок памяти определенного размера. После этого p будет адресом первого элемента выделенного участка оперативной памяти (0-й элемент массива), p 1 будет адресовать - следующий элемент в выделенном участке памяти(1-й элемент динамического массива), & , p i является адресом i-го элемента.Динамический массив - массив переменной длины, память под который выделяется в процессе выполнения программы. Формирование массивов с переменными размерами можно организовать с помощью указателей и средств динамического распределения памяти двумя способами: - с использованием библиотечных функций, описанных в заголовочных файлах alloc.h и stdlib.h (стандартный Си); Функция Прототип и краткое описание malloc void * malloc(unsigned s) Возвращает указатель на начало области динамической памяти длиной в s байт, при неудачном завершении возвращает NULL calloc void * calloc(unsigned n, unsigned m) Возвращает указатель на начало области динамической памяти для размещения n элементов длиной по m байт каждый, при неудачном завершении возвращает NULL realloc void * realloc(void * p, unsigned s) Изменяет размер блока ранее выделенной динамической памяти до размера s байт, р-адрес начала изменяемого блока, при неудачном завершении возвращает NULL free void *free(void p) Освобождает ранее выделенный участок динамической памяти, р - адрес первого байта Так как функция malloc возвращает нетипизированный указатель void*, то необходимо выполнить преобразование полученного нетипизированного указателя в указатель int*.Освободить выделенную память можно функцией free(mas). В случае успешного выделения памяти операция возвращает адрес начала выделенного участка памяти, если участок не может быть выделен, то возвращается NULL.В данной главе нами было подробно описано с демонстрацией примеров такие понятия, как: правила использования динамической памяти, указателя и его назначение, формат определения указателя, способы инициализации указателя, операции над указателями, связь массива с указателем, способы доступа к элементам массива через указатель.Функция - самостоятельная единица программы, спроектированная для реализации конкретной задачи. Функции в языке C играют ту же рол

План
СОДЕРЖАНИЕ двумерный динамический массив программа

ВВЕДЕНИЕ

Глава 1. Динамические массивы в С

1.1 Объявление и инициализация массива

1.2 Доступ к элементам массива

1.3 Рабочий размер массива

1.4 Многомерные массивы

1.5 Указатели, динамические массивы

1.6 Использование адресов и указателей при работе с динамическими массивами

1.7 Формирование динамических массивов с использованием библиотечных функций

1.8 Формирование динамических массивов с использованием операций new и delete

Глава 2. Разработка прикладной программы. Представление

2.1 Функции, требования к программе

2.2 Анализ и исследование результата работы программы

Выводы

Вывод
В данной главе нами было подробно описано с демонстрацией примеров такие понятия, как: правила использования динамической памяти, указателя и его назначение, формат определения указателя, способы инициализации указателя, операции над указателями, связь массива с указателем, способы доступа к элементам массива через указатель.

Из выше изложенного отметим возможности указателей и динамических массивов в С .

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

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

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?