65,211
社区成员
发帖
与我相关
我的任务
分享
char* GetName(char *pNames)
{
char *p = new char[20]; // pNames字符串可能会大于20, 如果pNames字符串小于20就没有问题
strcpy(p, pNames);
return p;
}
// 没有 释放 new char[20]
// 不再需要的时候, 要delete返回的char*
/////////////////////////////////////////////////////
// 可以改成这样
char* GetName(char *pNames)
{
char *p = new char[strlen(pNames)+1];
strcpy(p, pNames);
return p;
}
// 使用后, delete返回的char*
/////////////////////////////////////////////////////
// 如果不需要改变pNames字符串, 可以这么写
char* GetName(char *pNames)
{
return pNames;
}
/////////////////////////////////////////////////////
// 如果需要改变pNames字符串, 可以这么写
char* GetName(char *pNames)
{
static char p[32768]; // 一般的名字不会大于32768
if(pNames >= 32768)
return NULL;
return strcpy(p, pNames);
}