C语言的动态分配内存函数相比,C++的new 和delete运算符有什么相同点和区别呢?
3个回答
2012-10-09 · 知道合伙人互联网行家
关注
展开全部
1. new 可以用来申请 非基础类型的数据内存, 比如,我有struct sTemp{ int a; int b};
我可以,sTemp* pNew = new sTemp; 但malloc不行;
2 . new / delete 是运算符,而malloc/free是函数
这两点区别本质上是一点。
我可以,sTemp* pNew = new sTemp; 但malloc不行;
2 . new / delete 是运算符,而malloc/free是函数
这两点区别本质上是一点。
追问
new申请的是动态内存吗 他内部是如何实现的
追答
是动态的,是从堆里分配出的空间。
由于其是运算符而不是函数,c++也没有提供new的实现细节
不过可以再汇编级代码都无法看到端倪。
你有时间可以再VS下alt+8跟出汇编代码,一步步跟下去,就知道其实现原理。
前提是你需要对汇编有所了解。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
相同点:都会分配内存,使用完后都要释放内存
不同点:C中的是函数调用,C++是运算操作
不同点:C中的是函数调用,C++是运算操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询