c ++中指针变量的内存释放

has*_*ury 1 c++ memory-management

如果我通过以下行获取一块内存.

int* a = new int[10];
Run Code Online (Sandbox Code Playgroud)

然后为了释放内存,代码就是

delete [] a;
Run Code Online (Sandbox Code Playgroud)

但是,如果我采取单个内存段的指针,如下所示

int* a = new int;
Run Code Online (Sandbox Code Playgroud)

然后插入如下数据的数组.

for(int i=0;i<10;i++)
 {
    a[i]= i ;
 }
Run Code Online (Sandbox Code Playgroud)

因此,要释放指针"a"指向的第一个内存段,代码将如下所示

delete a;
Run Code Online (Sandbox Code Playgroud)

但是在这里我从指针"a"指向的内存中插入了9个以上的数据.所以我在这里实际使用了10个内存段.我如何释放所有这10个内存?请帮我解决.

Som*_*ken 5

我如何释放所有这10个内存?

你不能也不应该因为当你试图" 插入一组数据如下 "时你已经输入了Undefined Behavior土地来写入你没有new首先分配的位置.你问了一个int,你有一个int.不要写过去.