Re: issue with releasing memory from CArry
Raghavendra wrote:
Hi,
I am using VC++ 6.0, I have an issue while deallocating the memory using
CArray removeAll. The code for the allocation is
CArray <VoxelCoord,VoxelCoord> VoxCoordArray;
myPixVoxCoordArray = new VoxCoordArray * PIXVOXCOORDARRLEN];
for(int ii = 0; ii < PIXVOXCOORDARRLEN; ii++)
{
myPixVoxCoordArray[ii] = NULL;
}
for(int i = 0; i < PIXVOXCOORDARRLEN; i++)
{
myPixVoxCoordArray[i] = new VoxCoordArray;
}
}
the code for the deallocation is
if(myPixVoxCoordArray)
{
for(int i = PIXVOXCOORDARRLEN-1; i>=0; i--)
{
if(myPixVoxCoordArray[i])
{
myPixVoxCoordArray[i]->RemoveAll(); // exception happens here
delete myPixVoxCoordArray[i]; // exception happens here
myPixVoxCoordArray[i] = NULL;
}
}
if(myPixVoxCoordArray)
{
delete [] myPixVoxCoordArray;
}
myPixVoxCoordArray = NULL;
when i try to release the memory, exception is thrown only in release mode
and the dll is build using intel compiler .Please let me know any suitable
solution for the deallocation of memory
Raghavendra:
There are so many mistakes in this code that it is impossible to make meaningful
suggestions. This cannot possibly be your actual code (that presumably compiled
at least).
I suggest you paste your actual code.
--
David Wilkinson
Visual C++ MVP