4.3 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	title, localeTitle
| title | localeTitle | 
|---|---|
| Dynamic Memory Allocation | Динамическое распределение памяти | 
Распределение динамической памяти в C ++
Что такое динамическое распределение памяти на C ++?
- Распределение памяти в C ++ относится к памяти, выделенной для переменных, которые вы используете в своей программе.
- Динамическое распределение памяти - это память, которая привязана к переменным во время выполнения, и объем требуемой памяти также определяется во время выполнения.
- Эта память исходит из кучи , тогда как нестатические переменные и локальные переменные получают память из стека .
- В C ++ программист может выполнять выделение памяти вручную и называется распределением динамической памяти .
- В C можно было выполнять динамическое распределение памяти, используя функции calloc и malloc для выделения памяти и использования свободной функции для де-распределения динамической памяти.
- В C ++ в дополнение к выше, есть две функции: новые и удаленные для выполнения динамического распределения памяти и де-распределения.
Оператор NEW
- newоператор может предоставить память программиста из кучи (если доступно). Если память, запрошенная программистом, доступна, то- newоператор инициализирует память, а затем возвращает адрес (ссылку) выделенной памяти.
- Синтаксис
 pointer-variable-type= новыйdata-type;
 Пример 1:int *ptr= newint;
 Пример 2:int *ptr2= новыйint[10];
 Здесьpointer-variable-typeявляется указателем типаdata type. Типdata-typeможет быть int, char и т. Д. Или определяемым пользователем типом данных.
Оператор DELETE
- 
Ответственность программиста заключается в том, чтобы де-распределить динамически выделенную память, иначе память не будет доступна для перераспределения до конца программы. 
- 
Чтобы освободить память, оператор deleteдоступен и может быть использован программистом.
- 
Синтаксис 
 удалитьpointer-type-variable;
 Например, чтобы освободить память, выделенную в примере 1 выше, мы вводим:
 delete ptr;
 Аналогично, например, память может быть освобождена:
 delete ptr2;Утечки памятиУтечки вызывают, когда вы не можете освободить динамическую память, которую вы выделили с помощью оператора Newв конце вашей программы. Если вы не освободите его с помощью оператора Delete, ваш компьютер будет продолжать создавать новую память в куче каждый раз, когда запускается программа. Это приводит к замедлению работы вашего компьютера, поскольку память не удаляется, а доступная память уменьшается.