delete [] m_data;与delete m_data;的问题?

lovegeng lovegeng 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
看高质量C++编程的时候有个地方没看懂,就是在String的析构函数中释放m_data时用delete [] m_data,但后面跟着有个注释“由于m_data 是内部数据类型,也可以写成 delete m_data;”,delete m_data不是只释放一个单元么?

m_data的定义是: char *m_data;

// String 的析构函数
String::~String(void)
{
delete [] m_data;
// 由于m_data 是内部数据类型,也可以写成 delete m_data;
}

// String 的普通构造函数
String::String(const char *str)
{
if(str==NULL)
{
m_data = new char[1];
*m_data = ‘\0’;
}
else
{
int length = strlen(str);
m_data = new char[length+1];
strcpy(m_data, str);
}
}
...全文

相关推荐

中软国际C++面试题7月20号面试

本人7月份参加中软国际面试题目 这是笔试题 如果需要可以联系我 有部分技术面试题

C_peter

IT常见面试笔试题含答案

1.已知strcpy 函数的原型是: char *strcpy(char *strDest, const char *strSrc); 其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数, 请编写函数 strcpy 答案: char *strcpy(char *strDest, const char *strSrc) { if ( strDest == NULL || strSrc == NULL) return NULL ; if ( strDest == strSrc) return strDest ; char *tempptr = strDest ; while( (*strDest++ = *strSrc++) != ‘\0’) ; return tempptr ; } 3.12 main 函数执行以前,还会执行什么代码? (Autodesk) 答案:全局对象的构造函数会在main 函数之前执行。 3.13 描述内存分配方式以及它们的区别。 (Autodesk , Microsoft) 答案:1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块 内存在程序的整个运行期间都存在。例如全局变量,static 变量。 (2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上 创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理 器的指令集。 (3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申 请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。动态内 存的生存期由我们决定,使用非常灵活,但问题也最多。 3.14 什么是虚拟存储器?virtual memory 怎样映射到physical memory?页面替换 算法有哪些? (Microsoft) 见操作系统 p238 页。掌握的页面替换算法NRU,FIFO,第二次机会页面替换 算法,LRU 3.15 有四个同样的容器,里面装满了粒数相同的药丸,正常药丸的质量为m,变 质药丸的质量为m+1,现在已知这四个容器中,有一个装的全是变质药丸,用电 子秤只称一次,找出哪个容器装的是变质药丸(Microsoft) 答案:把四个容器依次编号为1、2、3、4,然后从中分别取出1、2、3、4 粒药 丸,称这10 粒药丸的质量,如果质量为10m+1,则说明第一个容器装的是变质药 丸,如果为10m+2 则说明第二个装的变质药丸,依次类推。 3.16 比较一下C++中static_cast 和 dynamic_cast 的区别。 (Autodesk) 。。。。。。。。。

ouch1hao

巨人笔试题

巨人2013年c++笔试题,挺不错的题目

fdssdfdsf

数据结构各种算法的c++实现

文档给出了数据结构各种算法的c++实现,用于参考~

dileu12

Memcached原理和使用详解

Memcached介绍 Memcached安装和使用 一些技巧 C++\PH一些例子

HZJSZHC
评论 26
收藏 已收藏
分享
返回顶部
lovegeng
C++ 语言 65,214 成员 250,514 内容