UnityのC#でコードを組んでいて疑問に思ったことなのですが、
構造体はスタック領域を使うと書いてあるのですが、
Listに関しては記述がなく、値型でない限りは参照型になるので
ヒープ領域を使うと思っています。

質問

  1. List<構造体>とした時は、どちらにメモリが確保されるのでしょうか?
  2. また、スタックに確保されたか?ヒープに確保されたか?を知る方法はないでしょうか?

経緯

UnityのC#ではヒープ領域がガベージコレクションで解放されないため、
1度ヒープ領域が更新されるとアプリを落とすまでヒープを確保し続け
アプリの確保メモリが非常に大きくなるため、スタックに移行できるものが
あればスタックに移行したいと思い、このような質問をしました。

環境

  • Unity 5.0.1f1
  • .NET 2.0
  • C# 4.0