最近我删除了一个对象并引发了一个异常,我已经缩小到使用strcpy()。为了测试这个,我做了一个简单的测试类,它基本上只使用strcpy()和瞧,这是一个例外。无法删除使用strcpy的对象()
#pragma once
class TestClass
{
public:
TestClass(char []);
~TestClass();
char teststring[];
};
它的构造是这样的:
TestClass::TestClass(char incstring[])
{
strcpy(teststring, incstring);
printf(teststring);
}
如果我运行下面的代码:
int main(){
TestClass* test = new TestClass("Cheezit");
delete test;
}
我得到一个抛出的异常!什么是STRCPY()?!?!?!?!
注意:控制台窗口打印“Cheezit”。
这不是一个有效的类定义。你的代码无效C++;你非常不幸的是要使用一个破碎的编译器(或者以破碎的方式使用编译器),它可以让你摆脱这种困境。 –
请编辑您的问题以包含[mcve] – Slava
@Slava:可能是。这看起来像一个C灵活的数组成员,在C++中很奇怪。 –