diff options
1 files changed, 27 insertions, 0 deletions
| -rw-r--r-- | Sem. 12/dynamic_memory.cpp | 27 |
diff --git a/Sem. 12/dynamic_memory.cpp b/Sem. 12/dynamic_memory.cpp new file mode 100644 index 0000000..6d45a1d --- /dev/null +++ b/Sem. 12/dynamic_memory.cpp @@ -0,0 +1,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. + //Уговаряме се, че ЩЕ БЪДЕ В СЪЩАТА ФУНЦКИЯ. + //Т.е няма да заделяме памет в една функция и да я освобождаваме в друга! +} |
