Рубрики

удалить и освободить () в C ++

В C ++ оператор delete должен использоваться только для указателей, указывающих на память, выделенную с помощью оператора new, или для указателя NULL, а free () должен использоваться только для указателей, указывающих на память, выделенную с помощью malloc (), или для нулевой указатель.

#include<stdio.h>
#include<stdlib.h>

int main()

{

    int x;

    int *ptr1 = &x;

    int *ptr2 = (int *)malloc(sizeof(int));

    int *ptr3 = new int;

    int *ptr4 = NULL;

  

    / * delete НЕ ДОЛЖНО использоваться, как показано ниже, потому что x выделен

        в кадре стека * /

    delete ptr1;  

  

    / * delete НЕ ДОЛЖНО использоваться, как показано ниже, потому что x выделен

        используя malloc () * /

    delete ptr2;  

  

    / * Правильное использование удаления * /

    delete ptr3;

    delete ptr4;

  

    getchar();

    return 0;

}

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

удалить и освободить () в C ++

0.00 (0%) 0 votes