独自の文字列クラスの構築に取り組んでいますが、部分文字列に問題があります
// Substring operator
// reutns a substring from a given point
String String::Substring(int startPosition, int length) const{
if(length==0)
length = GetLength()+1; //Takes care of null terminator, im not worried about if length is imputed yet
char* result = new char[length-startPosition]; // Assume it's not negative for the sake of just getting it to work, It would only be negative if it's user error
for(int i=startPosition; i<length; i++)
result[i] = Text[i]; //Since it will always go from a given point to the end, the null terminator will transfer in the for loop.
return result;
}
テキストは文字列クラスのデータメンバーです。未処理の例外、アクセス違反の読み取り場所が表示されます。
私がデバッグしている間、それはこれらのプロセスを経ていました
// Init-constructor for initializing this string with a C-string
String::String(const char* text){
*this = text;
}
と
// Assigns C-string to this String
String& String::operator = (const char* text){
// Delete the existing string first
delete[] Text;
// +1 accounts for null terminator
int trueLength = GetLength(text)+1;
// Allocate new memory
Text = new char[trueLength];
// Copy all characters from source into Text
for ( int i = 0; i < trueLength; i++)
Text[i] = text[i];
return *this;
}
あなたの助けに感謝して、私は私が間違っていることを理解することができません。