title: OutOfMemoryException
body: <p>I have an application that is pretty memory hungry.  It holds a large amount of data in some big arrays.</p>
  
  <p>I have recently been noticing the occasional OutOfMemoryException.  These OutOfMemoryExceptions are occurring long before my application (ASP.Net) has used up the 800mb available to it. 
  I have track the issue down to the area of code where the array is resized.  The array contains a structure that is 74bytes in size. (I know that you shouldn't create struct's that are bigger than 16bytes), but this application is a port from a Vb6 application). I have tried changing the struct to a class and this appears to have fixed the problem for now.</p>
  
  <p>I think the reason that changing to a class solves the problem has to do with the fact that when using a struct and the array is resized, a segment of memory that is large enough to store the new array needs to be reserved (e.g. (currentArraySize + increaseBySize)*74) cannot be found.  This leads to the OutOfMemoryException.</p>
  
  <p>This isn't the case with a class as each element of the array only needs 8bytes to store a pointer to the new object.</p>
  
  <p>Is my thinking correct here?</p>