Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 12 / dynamic_memory.cpp
blob: 6d45a1d68b5a4e94294d4d306093d6d07e1d7f9d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
using namespace std;

int main()
{
	int arr[3]; //големината на тези масиви трябва да е ясна ПРЕДИ да се компилира програмата
			    //паметта за стека трябва да се задели преди да тръгне програмата
	if (true)
	{
		int num = 10;
		num++;
	}
	//num++; //стекът сам си "чисти" паметта. Променливата num  не съществува.

	int n;
	cin >> n;
	int* arr = new int[n];// Тук n е променлива - стойността и НЕ е ясна преди да тръгне програмата!

	/*if (true)
	{
		arr = new int[2*n] // Отечка на памет (memory leak).Не е изтрита паметта, към която сочи arr. 
	}*/
	delete[] arr;
	//За всяко едно new трябва да имаме едно delete.
	//Уговаряме се, че ЩЕ БЪДЕ В СЪЩАТА ФУНЦКИЯ.
	//Т.е няма да заделяме памет в една функция и да я освобождаваме в друга!
}