C# Сколько памяти используется массивом, если инициализированы только некоторые записи? - PullRequest
1 голос
/ 06 августа 2020

Возник вопрос о массиве объектов, когда в исходном коде больше, чем требуется. Например, у меня есть такие объекты Button (еще не инициализированные):

Button[] buttons = new Button[99]

Итак, вопрос в том, что если я создам и инициализирую, скажем, только 10 из них, будет ли дополнительное потребление памяти, потому что из 99 массива кнопок?

1 Ответ

4 голосов
/ 06 августа 2020
• 1000 1005 * при первом создании массива без создания каких-либо Button объектов.

Размер ссылки, конечно, 32 бита при работе в качестве 32-битного процесса и 64 бита при работе в качестве 64-битного процесса. -битный процесс.

Итак, для вашего примера с 10 кнопками в массиве размером 99, общее пространство, занятое для 64-битного процесса, будет:

Size of the array + 10 * (size of a Button)

Где размер размер массива будет 99 * размер ссылки или 99 * 8 (байтов).

(8 байтов в этом вычислении, потому что 64 бита == 8 байтов)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...