From b36a65b23f55ec61b708c070b43e2b36e3ca9b06 Mon Sep 17 00:00:00 2001 From: lensferno Date: Fri, 8 Apr 2022 20:10:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E4=B8=89=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E8=A1=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- work20220407/string/String.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) 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; } /**