删除[] c ++不起作用

-8 c++ delete-operator

void show(int* x){
    printf("%d",x[3]);
}

int main(){
    int* ptr;

    ptr = new int[9]();
    delete [] ptr;    


    printf("%d %d\n", ptr[7], *(ptr+7));
    show(ptr);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

Nik*_*lis 8

为什么你认为它不起作用?您分配9个整数,然后删除它们.这很好用.

问题是您随后访问那些已删除的整数.一旦你这样做会发生什么事情是无关紧要的 - 你处于未定义的行为领域.它可能显示旧的值,它可能会崩溃或宇宙可能开始收缩.