通知
すべてクリア
Topic starter
2006年6月19日 1:22 PM
こんにちわ。
VC初心者です。
環境はVC6.0 WindowsXPです。
CArrayで100個の要素があります。
RemoveAllという関数を実行すると、
全ての要素を削除しますが、
このときに100個の要素のために確保
されているメモリエリアは
開放されるのでしょうか?
また、その方法はありますか?
2006年6月19日 1:45 PM
デバッガで RemoveAll() 内を追跡すると、
template<class TYPE, class ARG_TYPE>
void CArray<TYPE, ARG_TYPE>::SetSize(int nNewSize, int nGrowBy)
{
ASSERT_VALID(this);
ASSERT(nNewSize >= 0);
if (nGrowBy != -1)
m_nGrowBy = nGrowBy; // set new size
if (nNewSize == 0)
{
// shrink to nothing
if (m_pData != NULL)
{
DestructElements<TYPE>(m_pData, m_nSize);
delete[] (BYTE*)m_pData;
m_pData = NULL;
...
となっており、メモリも削除されています。
2006年6月19日 1:48 PM
解放されるようです。
Topic starter
2006年6月19日 3:54 PM
ありがとうございます。
助かりました。