delete内存前判断该内存是否为空是不是一个很必须的步骤

woneedjob woneedjob 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下面两个函数代码是林锐书上string类的赋值函数和析构函数。
关于这两个函数中delete内存有点小疑问。如下所示:

String String::operator=(const String &other)
{
if (this!=&other)
{
char *temp = new char[strlen(other.m_data)+1];
strcpy(temp,other.m_data);
delete []m_data ;//这里是不是应该改为if(m_data!=NULL)delete []m_data更合理呢
m_data = temp;

}
return *this;
}
String::~String()
{
delete []m_data;//这里是不是应该改为if(m_data!=NULL){delete []m_data;m_data = NULL;}更好呢?
}


...全文
评论 6
收藏 已收藏
分享
返回顶部
woneedjob
C++ 语言 65,214 成员 250,514 内容