【发布时间】:2014-02-25 08:26:40
【问题描述】:
Cppcheck 将带有delete cname; 的行报告为错误“分配和解除分配不匹配:cname”。我看不出使用我的代码版本有什么问题 - 它看起来可以工作。
我的代码错了吗?我如何解决它?使用我的代码会有什么后果?
if ( lenght != 0 )
{
char *cname = new char[lenght+1];
inbin.read(reinterpret_cast<char *>( cname ), lenght );
cname[lenght] = '\0';
*ptr_string = cname;
delete cname;
}
【问题讨论】:
-
数组释放是通过“delete [] cname”完成的