最近我刪除了一個對象並引發了一個異常,我已經縮小到使用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++中很奇怪。 –