0

快速提问:我是否必须/如何从这种内存分配中释放内存?

unsigned char *uString = new unsigned char[4096]();

如果我必须这样做,我会这样做吗?

free(uString); delete[] uString;

4

1 回答 1

2

free当您使用 C 函数等分配内存时,您会使用该函数malloc calloc

在 c++ 中,您使用运算符newdelete(还有他们的数组朋友new[]delete[])。

当你想删除用操作符创建的对象时new[],你调用操作符delete[]。例如:

int main(void)
{
    int[] arr = new int[5];
    int* a = new int;
    delete[] arr;
    delete a;
    return 0;
}

就这样。这也将调用析构函数。

于 2021-01-18T18:05:23.927 回答