指针判断问题
有一段程序需要检测内存泄露并消除,其中用到了这样的一个函数
char* myCat(char *str1,char *str2)
{
char *res;
.....
.....
lenStr1=strlen(str1);
lenStr2=strlen(str2);
res=new char[(lenStr1+lenStr2+1)*sizeof(char)];
...
...
...
return res;
}
并且有这样的调用
myStr=myCat(myStr,temp);
其中myStr和temp都是char*类型。问题是如果调用myCat之前,myStr是用new来分配的话,调用myCat之前用delete[]释放内存,但是这中调用总共在95个位置出现,myCat函数的第一个参数myStr不一定是用new分配的,可能是直接char *myStr="hello";这样的话,我在函数调用之前用delete[] myStr是错误的,不用delete[] myStre的话,如果myStr是用new分配的话,会出现内存泄露。所以怎么样判断myStr是用new分配的或者不是?如果不能判断,我只能修改定义了,因为这是一个很大工作量,所以我问一下。如果问了同样的问题,还请大家谅解,谢谢!