Во-первых, прочитайте этот пост от Эрика Липперта на Стек - это деталь реализации .Следуйте за ним Правда о типах значений .Что касается вашего конкретного вопроса
Экземпляры структуры иногда размещаются в куче?
Да, они иногда размещаются в куче.Есть много примеров, когда они могут быть размещены в куче.Если они в штучной упаковке, или они являются полями в классе, или если они являются элементами массива, или если они являются значением переменной типа значения, которая была закрыта, и т. Д.
Но что произойдет, если я поместу значения структуры в список и верну это?Элементы выживают.
Вы думаете об этом правильно, и это один из важных моментов, где может быть назначен тип значения.См. Второй пост, на который я ссылался в «Правде о типах значений», для более подробной информации.Но просто помните, что The Stack - это деталь реализации.Главное, что вам не нужно беспокоиться об этом.Вы должны быть обеспокоены семантической разницей между типами значений и ссылочными типами.