64,683
社区成员
发帖
与我相关
我的任务
分享
有一个指针变量:char * p,如何判断p指向的是字符串常量,还是new char[]?
class MyString{
private:
char * m_pData;
public:
MyString(){}
MyString(char * pStr = NULL)
{
m_pData = pStr;//如何判断pStr是一个字符串常量?
}
~MyString()
{
delete m_pData;//如果m_pData指向一个字符串常量,则此处有异常;
}
};
void main()
{
char * pStr = new char[20];
MyString mstr(pStr); //运行正常
MyString str("Hello world"); //析构时,报错。
}
MyString str("Hello world"); //析构时,报错。
你这个不是new,所以在析构函数中的delete是错误的