百科问答小站 logo
百科问答小站 font logo



C++的new操作符,底层使用的是malloc吗,在析构时,是如何确定自己需要释放内存的大小的? 第1页

  

user avatar   yao-dong-27 网友的相关建议: 
      

不考虑重载new delete的特殊情况,只考虑一般情况。

new的底层的确是malloc,但是不是最底层,malloc下面还有底层,那就是系统API层。比如在Windows上就是heapalloc,同样 free对应heap free。堆管理器负责记录下每个分配的内存块的信息,这个信息和内存地址是关联的,你只要给出地址,它就能知道内存块的实际大小。


user avatar   pansz 网友的相关建议: 
      

因为,学会制造工具远比进化出一个器官来得快。

制造长矛的技巧可能只需要几年就能发明。而进化出长矛型的器官恐怕需要几万年。等这些年过去,世界早就被造工具的物种统治了。

玄幻小说往往会强调修炼自身,这是反科学的。真实情况就是靠自身进化出有用的复杂器官需要百万千万年,远远比不上外部工具。




  

相关话题

  为什么存在着size_t, LPCSTR, wchar_t等别名? 
  c语言有哪些图形库(非c++)? 
  C++ 几十年来为什么没给 break 语句加上参数? 
  怎样理解C语言是才是代码的精髓,可以让你领略不一样的世界这句话?(其实就是怎么翻译成人话-_-# 
  怎么在 Windows 7 下用 C++,不兼容啊? 
  C++在面向对象编程中,非虚继承和非虚析构函数的存在是为了解决什么问题? 能否都用虚继承和虚析构函数? 
  C++ 父类对象赋值给子类对象是未定义行为么? 
  现在快2022年了,c++为什么还要实现(.cpp)和声明(.h)分开? 
  为什么这么多人黑C++? 
  各种语言写网络爬虫有什么优点缺点? 

前一个讨论
为什么股市每次大跌,都那么毫无征兆?
下一个讨论
为什么日本人名字直译成中文又好看又好听?





© 2025-05-23 - tinynew.org. All Rights Reserved.
© 2025-05-23 - tinynew.org. 保留所有权利