Задать вопрос
Amir228
@Amir228

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

Зачем он нужен если можно указать через указатель, тем самым сборщик мусора все ровно не почистит. Почему указать на массив можно лишь через fixed(закрепив указатель) или использовать stackalloc массивы? Кстати о stackalloc массивах, они нужны только чтобы поменьше нагружать?
  • Вопрос задан
  • 547 просмотров
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • Учебный центр IBS
    DEV-001_NET Шаблоны проектирования GoF. Редакция для .NET
    1 неделя
    Далее
Решения вопроса 1
fixed запрещает перемещать объект в памяти.
Сборщик мусора может и не соберёт объект, но без fixed он может его переместить и тогда указатель станет невалидным.

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

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

Похожие вопросы