首页 相关文章 内 存 问 题

内 存 问 题


  一、"delete p" 会删去 "p" 指针,还是它指到的资料,"*p" ?
  
  该指针指到的资料。"delete" 真正的意思是:「删去指针指到的东西」(delete the thing pointed to by)。同样的英文误用也发生在 C 语言的「释放」指标所指向的记忆体("free(p)"真正的意思是:"free_the_stuff_pointed_to_by(p)" )。
  
  二、能 "free()" 掉由 "new" 配置到的、"delete" 掉由 "malloc()" 配置到的记忆体吗?
  
  不行。在同一个程式里,使用 malloc/free 及 new/delete 是完全合法、合理、安全的;但 free 掉由 new 配置到的,或 delete 掉由 malloc 配置到的指标则是不合法、不合理的。
  
  
  三、为什麽该用 "new" 而不是 malloc() ?
  
  建构子/解构子、型别安全性、可被覆盖(overridability)。建构子/解构子:和 "malloc(sizeof(Fred))" 不同,"new Fred()" 还会去呼...[ 查看全文 ]

2016-02-19 标签:

内 存 问 题的相关文章

手机页面
收藏网站 回到头部