1 Feb
2013
1 Feb
'13
4:35 p.m.
2013/2/1 young
I have a class member (boost::shared_ptr):
class XYZ { private: boost::shared_ptr<int> m_pBuff; // other member ... public: void func(int n) { m_pBuff.reset(new int[n]); // or m_pBuff = boost::shared_ptr<int>(new int[n]) ...; } // other functions ... }
The func(n) will be called many times inside / outside the class. Can I use shared_ptr here like: m_pBuff.reset(new int[n]); or m_pBuff = boost::shared_ptr<int>(new int[n]);
I tried both and get error said heap corruption
The error is passing an array to a shared_ptr. Take a look at shared_array ;-) HTH, Kris