有一个指针变量:char * p,如何判断p指向的是字符串常量,还是new char[]?
有一个指针变量: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"); //析构时,报错。
}
...全文
相关推荐
你必须知道的495个C语言问题
你必须知道的495个C语言问题 你必须知道的495个C语言问题
南京网博C++考试题
这是网博培训时,C++的考试题目,很经典的
深入const int *p与int * const p的区别详解(常量指针与指向常量的指针)
本篇文章是对const int *p与int * const p的区别进行了详细的分析介绍,需要的朋友参考下
分析C++中char*和char[]的区别
深入分析C++中char*和char[]的区别,分析的十分透彻,对于新手、高手都适用。
编写函数void fun(char *s,char *t,char *p)将未在字符串s中出现、而在字符串t中出现的字符, 形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。
编写函数void fun(char *s,char *t,char *p)将未在字符串s中出现、而在字符串t中出现的字符, 形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。 例如: 当s为"12345", t为"8624677"时, p中的字符为: "867"; 当s为”good luck”,t为”thank you very much”时,输出:”thanyverm”


