title: Management of strings in structs
body: <p>I know that strings have variable length, therefore they need variable space in memory to be stored. When we define a string item in a <code>struct</code>, the <code>struct</code>'s size would then be variable in length. </p>
  
  <p>Older languages managed this by using fixed-length strings.  However, there is no way to define fixed-length strings in C#, and C# manages normal strings in <code>struct</code>s pretty good. </p>
  
  <p>This becomes more weird when we define an array of such <code>struct</code>s, or simply an array of strings. As result of any change (decrease/increase) in length of one string, all forward <code>struct</code>s must be shifted. </p>
  
  <p>How does C# handle variable-length strings in structs?</p>