如何判断一个char * 的字符串为空?
我用VC写了一个函数,问题在注释里面:
void CFastSmtp::SetPassword(const char Password[])
{
assert(Password);
int s=strlen(Password);
/***************************************************************************/
/* m_pcPassword 是CFastSmtp类的一个私有成员:private char * m_pcPassword; */
/* 这里用if(m_pcPassword) 不能判断m_pcPassword是否为空,因为我单步调试时 */
/* 发现尽管m_pcPassword为空,但是后面的delete语句仍然执行了,用strlen判断 */
/* 也不行,用if(m_pcPassword!=0) &&if(m_pcPassword!=NULL)也不行,怎么判断? */
/***************************************************************************/
if (m_pcPassword)
delete [] m_pcPassword;
m_pcPassword = new char[s+1];
strcpy(m_pcPassword, Password);
}
怎么才是正确有效的判断方法呢?