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个内存?请帮我解决.
我如何释放所有这10个内存?
你不能也不应该因为当你试图" 插入一组数据如下 "时你已经输入了Undefined Behavior土地来写入你没有new首先分配的位置.你问了一个int,你有一个int.不要写过去.