title: how to access marshalled pointer to structure data in c#?
body: <p>i'm marshaling 'unmanaged c' code to my C# code given below.</p>
  
  <pre><code>    [DllImport("ContainerDll.dll", CallingConvention = CallingConvention.Cdecl)]
      public static extern IntPtr NodeSearch(IntPtr firstNode, string key);
  
      IntPtr firstNode = IntPtr.Zero;
  
      private void button4_Click(object sender, EventArgs e)
      {
          IntPtr ret = NodeSearch(firstNode, "key_string");
      }
  
      //NodeSearch method will be called which is present in 'ContainerDll.dll'
      //pointer to structure will be returned.
  
      //my c-structure contains these fields. 
  
      //        typedef struct container
      //        {
      //             char Name[20];
      //             void *VoidData;
      //             struct container *Link;
      //        }       
      //             Node;
  </code></pre>
  
  <p>My C# variable 'ret' of type 'IntPtr' got the pointer to this structure now. It has the  address returned from 'NodeSearch' method.</p>
  
  <p>How to access this in C# form application(also in console application)?</p>
  
  <p>I think I cannot use like this: ret->Name[0], ret->VoidData etc.</p>
  
  <p>I am a beginner! Can you please me?</p>