Страницы

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

воскресенье, 5 января 2020 г.

Высвобождение памяти delete[]

#cpp


Будет ли корректно работать код?

void *ptr_1;  
long *ptr_2;  
*ptr_2=new long[10];  
(long*)ptr_1=ptr_2;  
delete[] ptr_2;
    


Ответы

Ответ 1



Во-первых, в том виде что вы привели, этот код даже компилироваться не будет, вот так он должен выглядеть: void *ptr_1; long *ptr_2; ptr_2 = new long[10]; ptr_1 = ptr_2; delete[] ptr_2; Во-вторых, после того как выполнится delete[] ptr_2;, указатель ptr_1 будет указывать на высвобожденную память, соответственно, любая попытка записи/чтения в/из нее приведет к ошибке.

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

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