Страницы

Поиск по вопросам

вторник, 30 октября 2018 г.

C++ динамическое выделение памяти

Здравствуйте, у меня вопрос почему память после оператора delete память так и остается задействована или я что то не так понимаю: #include
using namespace std;
int main(){
int *p=new int[10];
for(int i=0;i<10;i++){
p[i]=i;
} delete [] p;//удаление массива
cout< }


Ответ

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

Комментариев нет:

Отправить комментарий