TStringList* __fastcall StrSplit(AnsiString sstr,AnsiString pstr)
{
int i;
AnsiString temp;
TStringList* strlist=new TStringList;
if(sstr=="") return NULL;
temp=sstr;
i=sstr.AnsiPos(pstr);
while(i!=0)
{
strlist->Add(temp.SubString(0,i-1));
temp.Delete(1,i);
i=temp.AnsiPos(pstr);
}
strlist->Add(temp);
return strlist;
}调用时:
TStringList* ss=StrSplit("12345|67890","|");
if(ss) Label1->Caption=ss->Strings[0];
delete ss;这样在函数里NEW一个指针再返回会不会产生内存漏洞?
还是将指针传到函数里,再返回比较安全?
{
int i;
AnsiString temp;
TStringList* strlist=new TStringList;
if(sstr=="") return NULL;
temp=sstr;
i=sstr.AnsiPos(pstr);
while(i!=0)
{
strlist->Add(temp.SubString(0,i-1));
temp.Delete(1,i);
i=temp.AnsiPos(pstr);
}
strlist->Add(temp);
return strlist;
}调用时:
TStringList* ss=StrSplit("12345|67890","|");
if(ss) Label1->Caption=ss->Strings[0];
delete ss;这样在函数里NEW一个指针再返回会不会产生内存漏洞?
还是将指针传到函数里,再返回比较安全?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货