Verwendung habe ich eine Klasse mit privaten VariableHeap Korruption wenn make_shared
shared_ptr<short> m_p_data;
ich Heapbeschädigung, wenn ich diesen Konstruktor verwenden:
Volume2D(const int dimX, const int dimY) :m_dimX{ dimX }, m_dimY{ dimY }, m_p_data{ make_shared<short>(dimX*dimY) } {
}
aber es gibt keine Heapbeschädigung, wenn ich dies tun statt:
Volume2D(const int dimX, const int dimY) :m_dimX(dimX), m_dimY(dimY) {
m_p_data.reset(new short[dimX*dimY]);
}
Um genauer zu sein, hier ist der Code, den Heap korrumpiert:
Volume2D vol(10, 1);
for (auto i = 0; i < 10; ++i) {
vol(i, 0) = i;
cout << "value = " << vol(i, 0) << endl;
}
return 0;