我在C++中看到有多种方式来分配和释放数据,我知道当你打电话给malloc你时应该打电话free,当你使用new操作员时你应该配对,delete将两者混合是错误的(例如,调用free()创建的东西)与new操作员),但我不知道何时应该使用malloc/ free何时应该在我的真实世界程序中使用new/ delete.
如果您是C++专家,请告诉我您在此方面遵循的任何经验法则或惯例.
我看到这样的代码:
void *NewElts = operator new(NewCapacityInBytes);
Run Code Online (Sandbox Code Playgroud)
并且明确地匹配调用operator delete随后使用.
为什么这样做而不是:
void *NewElts = new char[NewCapacityInBytes];
Run Code Online (Sandbox Code Playgroud)
为什么显式调用operator new和operator delete??
我是初学者,这个问题总让我感到困惑.我的学术书说新操作员返回一个地址.但在许多教程中,我发现new返回指向特定地址的指针.拿着这个:
char *name = new char[x];
Run Code Online (Sandbox Code Playgroud)
这里为name命名了什么值,动态分配的地址或指向动态分配的char的指针?谢谢