C++ C++;strcat_s字符串以null结尾

C++ C++;strcat_s字符串以null结尾,c++,C++,我的代码给了我一个错误: 调试断言失败 表达式:(L“字符串不以null结尾”&&0) 类矩形{ 私人: char*objID; } 矩形::矩形(常数矩形和矩形){ std::cout应该是这样的 const char* psuffix = "(кoпия)"; size_t size = strlen(rect.objID) + strlen(psuffix) + 1; objID = new char[size]; strcpy_s(objID, size, rect

我的代码给了我一个错误:

调试断言失败

表达式:(L“字符串不以null结尾”&&0)

类矩形{
私人:
char*objID;
}
矩形::矩形(常数矩形和矩形){

std::cout应该是这样的

const char* psuffix = "(кoпия)";

size_t size = strlen(rect.objID) + strlen(psuffix) + 1;
objID = new char[size];
strcpy_s(objID, size, rect.objID);
strcat_s(objID, size, psuffix);

size_t size2 = strlen(rect.name) + 1;
name = new char[size2];
strcpy_s(name, size2, rect.name);

strcpy\u s
/
strcat\u
的第二个参数是缓冲区的长度,包括为
\0
保留的空间,它应该类似于

const char* psuffix = "(кoпия)";

size_t size = strlen(rect.objID) + strlen(psuffix) + 1;
objID = new char[size];
strcpy_s(objID, size, rect.objID);
strcat_s(objID, size, psuffix);

size_t size2 = strlen(rect.name) + 1;
name = new char[size2];
strcpy_s(name, size2, rect.name);
strcpy_s
/
strcat_s
的第二个参数是缓冲区的长度,包括为
\0
保留的空间

objID=new char[strlen(rect.objID)+strlen(((?);
strcpy_s(objID,strlen(objID),rect.objID);
创建时,
objID
包含未初始化的内存。内存中充满随机数据。因此,
strlen(objID)
不会返回在
new
操作中分配的大小(
strlen(rect.objID)+strlen((copy)+1
),而是返回随机数据的长度(以
\0
字符结尾)

int size=strlen(rect.objID)+strlen(((?);
objID=新字符[大小];
strcpy_s(对象、大小、矩形对象);
objID=new char[strlen(rect.objID)+strlen(((?);
strcpy_s(objID,strlen(objID),rect.objID);
创建时,
objID
包含未初始化的内存。内存中充满随机数据。因此,
strlen(objID)
不会返回在
new
操作中分配的大小(
strlen(rect.objID)+strlen((copy)+1
),而是返回随机数据的长度(以
\0
字符结尾)

int size=strlen(rect.objID)+strlen(((?);
objID=新字符[大小];
strcpy_s(对象、大小、矩形对象);

在C++中,首选代码> > STD::String 原始字符数组。<代码> STRLEN(Name)应该是 StrLLN(Rcc.name)
。实际上,保存长度比在同一字符串上调用strlen 3次要好。不能在指向非终止字符序列的字符指针上调用
strlen
。如上所述,
strlen(objID)
strlen(name)是错误的。处理这些问题很棘手,这就是为什么我们有<代码> STD::String 。在C++中,更喜欢<代码> STD::String 原始字符数组。<代码> STRLEN(Name)< /C>应该是 StrLLN(Rcc.name)
。实际上,保存长度比在同一字符串上调用strlen 3次要好。不能在指向非终止字符序列的字符指针上调用
strlen
。如上所述,
strlen(objID)
strlen(name)
是错误的。处理这些问题很棘手,这就是为什么我们有
std::string