Amir228
@Amir228

Зачем нужен оператор fixed в c#?

Зачем он нужен если можно указать через указатель, тем самым сборщик мусора все ровно не почистит. Почему указать на массив можно лишь через fixed(закрепив указатель) или использовать stackalloc массивы? Кстати о stackalloc массивах, они нужны только чтобы поменьше нагружать?
  • Вопрос задан
  • 317 просмотров
Решения вопроса 1
vabka
@vabka Куратор тега .NET
Токсичный шарпист
fixed запрещает перемещать объект в памяти.
Сборщик мусора может и не соберёт объект, но без fixed он может его переместить и тогда указатель станет невалидным.

stackalloc выделяет данные на стеке, а по тому с ним такой проблемы нет, ну и да - он не нагружает gc, хоть и обладает кое-какими другими потенциальными проблемами.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы