を持っていますが、vector<MyType*>*
どのようにアクセスされているのか完全にはわかりません。私は宣言しMyType* var = new MyType(params)
ており、それが作成されたクラスで問題なくアクセスされています。数字は問題なく吐き出されます。それらのベクトルを返し、別のクラス (メソッド) からアクセスしようとすると、int main()
まったく異なる数値が得られます。
私がそれにアクセスしている方法int main()
は
MyType* Temp = reinterpret_cast<MyType*>(&ReturnedVector[i]);
ここで何かミスが指摘されていますか?私はC++が初めてです。
編集: 明確化のためにコードを追加します。これが私の主な方法です:
int main(array<System::String ^> ^args)
{
MyAPI API;
std::vector<MyClass*>* RetVector = API.GetVector();
for (unsigned int i = 0; i < RetVector->size(); i++)
{
MyClass* Temp = reinterpret_cast< MyClass* >(&RetVector[i]);
cout << Temp->value << endl;
}
return 0;
}
別のクラスでメソッドを返すベクトルを次に示します。
vector<MyClass*>* MyAPI::GetVector()
{
vector<MyClass*>* Ret = new vector<MyClass*>();
for (int i = 0; i < 100; i++)
{
MyClass* Tmp = new MyClass(params);
Ret->push_back(Tmp);
}
return Ret;
}