Возникает вопрос:
Дано:
struct Point {int x; int y;} var p = new Point[3]
сколько байтов памяти будет выделено в стеке и в куче, если мы будем использовать 64-разрядный процессор?
Правильный ответ для .Net
44. Может ли кто-нибудь объяснить, как появилось это число?
Насколько я понимаю, p
будет занимать 8 байт в стеке для x64
.
И у нас есть два значения Int32
для каждой структуры, таким образом
p.Length * sizeof(Point)
3 * 8 = 24 байта в куче для массива.
Это будет 32 байта. Что остальное 12 байт в этом случае?