在什么情况下,我使用malloc和新的?我在C+中看到了分配和释放数据的多种方法,我理解当您调用malloc你应该打电话free而当您使用new应与之配对的运算符delete把两者混为一谈是错误的(例如,打电话)。free()在用new(接线员),但我不清楚什么时候应该使用malloc/ free当我应该用new/ delete在我的现实世界里。如果你是C+专家,请告诉我你在这方面遵循的任何经验规则或惯例。
3 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
malloc
new
.
char *pBuffer = new char[1024];
//This is incorrect - may delete only one element, may corrupt the heap, or worse...delete pBuffer;
//This deletes all items in the arraydelete[] pBuffer;
new
new
malloc
malloc
new
realloc
realloc
new
/free
malloc
/delete
.
int* p_scalar = new int(5); // Does not create 5 elements, but initializes to 5
int* p_array = new int[5]; // Creates 5 elements
- 3 回答
- 0 关注
- 477 浏览
添加回答
举报
0/150
提交
取消