title: Free IntPtr to IntPtr
body: <p>I have class called <code>Parent</code> :</p>
  
  <pre><code>Class Parent
  {
      String Name;
      IntPtr Childs; // this pointer actual type is 'Array of Child' and it was storred as unmanned array
      int ChildsCount;// count of 'array of Child'
  }
  </code></pre>
  
  <p>and Class Child :</p>
  
  <pre><code>Class Child
  {
      String Name;
      IntPtr Photo; //Byte Array
  }
  </code></pre>
  
  <p>All Data are unmanged.</p>
  
  <p>Now in some place in the Main program I have an <code>IntPtr</code> that points to a <code>Parent</code>.</p>
  
  <p>If I try to free this Parent using  <code>Marshal.FreeHGlobal</code> The real data of the Childs will not be freed.</p>
  
  <p>The question:
  How can digg into them and free them automatically without write a step by step freeing code?</p>