diff --git a/work20220407/string/String.cpp b/work20220407/string/String.cpp index 1453bc8..402c027 100644 --- a/work20220407/string/String.cpp +++ b/work20220407/string/String.cpp @@ -15,9 +15,9 @@ String::String(int size) : length(0), allocSize(size) { } /** - * 不设定初始化大小就默认64个字符来初始化 + * 不设定初始化大小就默认128个字符来初始化 */ -String::String() : String(64) {} +String::String() : String(128) {} /** * 从源中复制字符串来构建新的对象 @@ -160,18 +160,17 @@ void String::addString(const char *source, int sourceLength) { char *old = new char[length + 1](); strcpy(old, data); - // 重新分配内存,防止拼接后溢出,2为两个横杠大小 - length += sourceLength; - allocSize = length + 1; + // 重新分配内存,防止拼接后溢出 delete[] data; + allocSize = length + sourceLength + 1; this->data = new char[allocSize](); strcpy(data, old); } strcat(data, source); - length += sourceLength; + length = allocSize - 1; } /**