[Insight-developers] itk::Array operator= missing?

Lydia Ng lng at insightful.com
Fri May 28 01:16:46 EDT 2004


I finally worked out the cause of the memory leak in the
itkShapePriorMAPCostFunctionTest. I believe is due to the
Array::m_LetArrayManageMemory not being set properly.

This is illustrated in the following code:

------------------------------
#include "itkArray.h"

int main()
{

  typedef itk::Array<float> ArrayType;

  //
  // Create an itk::Array which manages its own memory
  //
  ArrayType myOwnBoss;
  myOwnBoss.SetSize( 5 );
  myOwnBoss.Fill( 2.0 );

  //
  // Create an itk::Array which does not manage its own memory
  //
  float buffer[7];
  ArrayType notMyOwnBoss;
  notMyOwnBoss.SetSize( 7 );
  notMyOwnBoss.SetData( buffer, false );
  notMyOwnBoss.Fill( 4.0 );

  //
  // Copy an itk::Array which manages its own 
  //
  ArrayType test1 = myOwnBoss;

  //
  // Copy an itk::Array which does not manage its own memory
  // After copying test2.m_LetArrayManageMemory is set to
  // zero even though it has created its own memory - thus
  // causing a memory leak.
  //
  ArrayType test2 = notMyOwnBoss;

  return 0;
}
----------------------------

>From the cvs log of itkArray.h it looks like operator= for itk::Array was
added then deleted due to issues with bcc - does anyone know why?

- Lydia


More information about the Insight-developers mailing list