[我用C ++编写了一个函数,该函数将一个字符串和一个char作为参数,并返回一个字符串数组,其中每个数组元素都是该字符串中的一个单词。
string* breakS(string s, const char* c){
string::iterator it;
int j=0, i = 1;
for(it = s.begin();it!=s.end();it++){
if(*it == *c){
i++;
}
}
string* R = new string[i];
for(it = s.begin();it!=s.end();it++){
if(*it != *c){
R[j].push_back(*it);
} else {
j++;
}
}
return R;
}
由于我永远不知道输入字符串将有多少个单词,所以我不得不动态分配字符串数组。
该程序运行良好,但是当函数完成执行后,由[[string * R =新的字符串[i]]]分配的内存将被释放,因此我相信如果字符串输入足够大,则字符串数组由该程序重新调谐可能会被覆盖。如何在函数执行完成后使在函数内部分配的内存保持分配状态?
我用C ++编写了一个函数,该函数将字符串和char作为参数,并返回一个字符串数组,其中每个数组元素都是该字符串中的一个单词。 string * breakS(string s,const char * c){...
如何使函数内部分配的内存在函数执行完成后仍保持分配状态?