Динамическая память Обычной памяти под программу выделяется
Динамическая память
Обычной памяти под программу выделяется 64 Кбт. Иногда этого недостаточно. Например массив элементов типа double размера 100*100 займет в памяти 8*100=8000 байт
Статическая память Распределяется на этапе компиляции программы. Вывод: изменить во время работы программы ее нельзя. Возникает необходимость объявлять массив из заведомо большего числа элементов.
Динамическая память Выделяется на этапе работы программы. Выделением и очисткой этой памяти занимается программист.
1. Выделение динамической памяти Указатель = new тип[число элементов]; Если выделяется память на один элемент, то [] могут отсутствовать пример: int *p; p=new int; Выделяется в динамич памяти место, достат для хранения значения целого типа и помещ в указатель. p-адрес соотв-го участка памяти
*р=5; помещаем в соотв ячейку памяти значение 5 printf(“%i”, *p); // 5 int n; scanf(“%i”, &n); float *pa=new float[n]; //массив из произвольного числа элементов for (i=0; i
2. Очистка динамической памяти delete указатель; Он освобождает динамическую память, связанную с соответствующим указтелем. delete р; delete ра;
Написать программу подсчета количества цифр в массиве строк. Использовать функции и динамическую память 1. Прочитать массив строк с динамич памятью 2. Функция определения количества цифр в строке
• # include
void main() { clrscr(); char **s; char tmp[100]; int i, n, len; printf("введите n"); scanf("%i", &n); getchar(); s=(char **) new(char*)[n]; for (i=0; i
Результат: Введите n 4 Жили у бабуси 2 веселых гуся Жили у бабуси Количество цифр в массиве 2
Определить максимальный элемент массива из произвольного количества элементов # include
void z(int *arr, int n) { randomize(); int i, m; printf("введите диапазон изменения аргументов"); scanf("%i", &m); for (i=0; i
void vuvmas(int *arr, int n) { int i; for(i=0; i
void main() { clrscr(); int n; printf("введите размерность массива"); scanf("%i", &n); int *p=new int[n]; z(p, n); printf(“массив”); vuvmas(p, n); printf("n%iмаксимальный", max(p, n)); delete p; getch(); }
Результат: Введите размерность массива 5 введите диапазон изменения аргументов 100 Массив 56 23 2 95 63 Максимальный 95
Динамическая память.ppt
- Количество слайдов: 16

