我想單獨填充''並將其存儲在數組中的字符串。對於我寫的代碼,CPP中的字符串的內存管理問題
string* componentsOfStringSeperatedBystring(string originalString, string stringCompare){
string *arryOfStrings=NULL;
string *tempArrayString = NULL;
for (int i=0; i<originalString.length(); i++) {
size_t position = originalString.find(stringCompare);
cout << "\nposition" <<position;
if (position == originalString.npos) {
break;
}
size_t subStringLength = originalString.length() - position;
cout << "\nsubStringLength" <<subStringLength;
string subString = originalString.substr(0,position);
cout << "\nsubString" <<subString;
tempArrayString = (string*)realloc(arryOfStrings, (i+1)*sizeof(string));
cout << "\n i \t" <<i;
if (tempArrayString != NULL) {
arryOfStrings = tempArrayString;
arryOfStrings[i] = subString;
}
cout << "\narryOfStrings" <<arryOfStrings;
originalString = originalString.substr(position+1,subStringLength);
}
return arryOfStrings;
}
我收到墜毀,機上線「arryOfStrings [i] =串;」如果我只是第一次分配足夠的空間,然後重新分配不,我沒有得到墜毀。
第一件要做的事就是使用'std :: vector'來代替那個指針數組。 – chris
+1 @chris爲什麼會有人使用指針字符串和realloc ... –
@rakeshNS你怎麼意思'單獨的字符串充滿'''?你的意思是用''分隔字符串嗎? – billz