我知道这是一个相当简单的问题,但我不确定这行之间的区别(如果有的话):
double * a = new double[100];
delete[] a;
delete a;
free ((void*)a);
首先,所有这些调用(在没有其他调用的情况下使用每个调用)是否以相同的方式工作并释放 sizeof(double)*100 字节?这让我想到了第二个问题,程序如何跟踪分配内存的大小?例如,如果我将a
指针发送到一个函数,那么delete[]
我的函数中的这个指针,我是否也会释放相同数量的内存?
谢谢