Куча мала

แชร์
ฝัง

ความคิดเห็น • 32

  • @antonw.zimakos8981
    @antonw.zimakos8981 3 หลายเดือนก่อน +5

    Лучи добра и поддержки всем здравомыслящим! Спасибо вам

  • @parennasubaru
    @parennasubaru 3 หลายเดือนก่อน +3

    Спасибо, очень полезная информация.

  • @user-sp4yc6cl1s
    @user-sp4yc6cl1s 3 หลายเดือนก่อน +2

    Спасибо за познавательное видео. От себя могу добавить, что есть еще одна возможная проблема, связанная с использованием динамической памяти, а именно "фрагментация кучи" - вещь еще более коварная, т.к. последствия могут проявиться не сразу, а в процессе длительной работы МК.

  • @ajdarseidzade688
    @ajdarseidzade688 3 หลายเดือนก่อน

    Только сегодня увидел видео. Соболезнования всем родным погибших! Нужно найти виновников этого ЧУДОВИЩНОГО терракта!

  • @ingvarindigo21
    @ingvarindigo21 3 หลายเดือนก่อน

    Привет из солнечного Ташкента, большое спасибо за полезную информацию 👍

  • @Ais_Hunt
    @Ais_Hunt 3 หลายเดือนก่อน +1

    Интересно. Был у меня когда-то вопрос, когда Я только начинал программировать на ардуино связанный с выделением памяти в функциях. Т.е. когда поток выполнения попадает в функцию в которой используются какие-то переменные, массивы, то под них выделяется память, а по выходу из функции, память этой функции очищается.
    Первый вопрос, какая тогда разница между динамической памятью и памятью выделяемой в функции, в контексте МК у которого этой памяти крайне мало и продумывать код который будет без контрольнно выделять память бессмысленно, а такое может случиться... По стечению лет, вопрос отпал сам собой)
    Второй вопрос, как отследить этот момент, что память уже кончилась или кончается при попадании в функцию и выделении памяти на эту функцию?
    *Как то у меня был момент, когда в большом проекте мне надо было опрашивать ESP32 через AT команды и искать Wi-Fi без пароля и выводить все названия точек доступа на экран. В какой-то момент, терминал ардуино начинал сбоить и выводить бессвязные символы, а программа начинала исполняться не корректно.

  • @wickeddubz
    @wickeddubz 3 หลายเดือนก่อน

    Спасибо за контент! Как всегда по делу и очень полезно. Есть ли в планах видео, посвященные применению Rust и Zig для разработки на МК (RISC-V, STM32, AVR)? Еще очень интересен вопрос выбора МК в зависимости от требуемого объема вычислений. Например, что выбрать для реализации звука (44100, минимум 16 бит) и DSP в реальном времени? Как правильно подсчитать нагрузку?

    • @alexmorozov73
      @alexmorozov73  3 หลายเดือนก่อน

      Ничего такого в планах нет

  • @yuriisenchuk6552
    @yuriisenchuk6552 3 หลายเดือนก่อน +5

    Я полностью понимаю ваши слова о теракте в ТЦ в начале видео - но извините, это маразм, такое заявлять "те кто будет плясать на костях", при том что ваша страна в тот же день утром запустила более десятка шахедов и ракет по соседней стране по гражданским объектам.

    • @alexmorozov73
      @alexmorozov73  3 หลายเดือนก่อน +3

      Маразм - это теракт сравнивать с боевыми действиями. После 2 мая в Одессе еще не наплясались?

    • @alexmorozov73
      @alexmorozov73  3 หลายเดือนก่อน

      Смешались в кучу кони, люди... (С)
      И Пригожин тут уже помянут, и црушная помойка википедия как источник правды, где модераторы русского сегмента все знаете какой нации? :)
      Вы не понимаете, о чем я говорю, видимо скудоумие ваше все. Ведь у ваших родителей такое же советское образование, как у меня и моих, куда вы все просрали?!
      Кто бы по вашему мнению не сжег кого в Доме профсоюзов, в вашей стране массово смеялись над этим! Называли кафешки и блюда в "честь" славной победы!
      И для альтернативно-одаренных, как только вы по поводу теракта пытаетесь сознательно или подспудно переводить стрелки на Царя или Пригожина или еще кого, вы самой постановкой ОПРАВДЫВАЕТЕ ТЕРОРИЗМ! С вами, скотами, мне говорить не о чем.

    • @bcdbcd7116
      @bcdbcd7116 3 หลายเดือนก่อน +1

      @@alexmorozov73 Думаю лучше такие темы сдесь не обсуждать. Никого нельзя переубедить у всех своя правда. Поетому сдесь техникой заниматься ефективнее.

    • @vladimir0rus
      @vladimir0rus 3 หลายเดือนก่อน

      @@alexmorozov73всё понятно, ты Zтник с промытыми мозгами. Я думал адекватный, а оказался полный набор "8 лет дамбили бомбас".

    • @barcooler
      @barcooler 3 หลายเดือนก่อน

      @@bcdbcd7116то что ципсошные выруси пишут в куче видео - не является правдой. Они только фекальные массы на вентилятор накидывают дабы оправдать своё (и не только) существование.

  • @user-Yurich68
    @user-Yurich68 3 หลายเดือนก่อน

    ✌️

  • @olexangrstetsiuk3092
    @olexangrstetsiuk3092 3 หลายเดือนก่อน +1

    Пока так и не понял , по этому вопрос : Обязательно нужно ли прописывать в коде удаление указателя на динамический массив и сам массив ? Нигде в ардуиновских кодах не встречал delete , но все ютюбучителя С++ настаивают на этом.

    • @alexmorozov73
      @alexmorozov73  3 หลายเดือนก่อน +4

      Смотря как используется этот массив. Если постоянно с момента создания - то зачем его удалять? Если же временно, то конечно надо освобождать память.
      В коде для МК во многих классах нет деструкторов, потому что типа нет нужды освобождать ресурсы, т.к. объекты чаще всего существуют до конца, потому что конца то и нет. Но это очень спорно...

    • @olexangrstetsiuk3092
      @olexangrstetsiuk3092 3 หลายเดือนก่อน

      @@alexmorozov73 , если в loop вызывается функция которая при отсутствии контекста с роутером читает с ЕЕПРОМ (имя и пароль) и создает эти массивы для последующего WIFi.connect (name, password); , то есть в бесконечном ходе программы происходит такое создание рандомно .
      Немного поразмыслив предполагаю , что такие массивы должны попадать именно в СТЕК , и значит при выходе из функции - память очистится без ее ,,утечки,, ... Правильны ли мои умозаключения ? . И конечно же БОЛЬШОЕ СПАСИБО , за оказанное мне внимание .
      Но не уж то указатель на массив тоже попадает в СТЕК ?..

    • @alexmorozov73
      @alexmorozov73  3 หลายเดือนก่อน

      Если массив не динамический, то нет никакого "указателя", есть область памяти и имя переменной массива заменяется при использовании на адрес его первого элемента.

    • @olexangrstetsiuk3092
      @olexangrstetsiuk3092 3 หลายเดือนก่อน

      @@alexmorozov73 , да ,это я хорошо усвоил в первую очередь благодаря Вашему уроку о арифметике указателей . Но я о : unsigned char * buff_ssid = new unsigned char [32] ; . На этот момент я полагаю , что непрерывная область памяти под массив из 32 байт помещается в стек , но указатель на адрес первого байта массива ,(по моему) должен попадать в КУЧУ. Вот и не понимаю , стоит ли тратить ROM на дополнительный код их удаления .

    • @alexmorozov73
      @alexmorozov73  3 หลายเดือนก่อน

      Вызовы malloc/new в любом контексте выделяют именно динамическую память. Так что в вашем случае указатель лежит на стеке, а место, куда он указывает - в динамической памяти. Как вышли из функции, так адрес выделенного блока потеряли и его уже не освободить.
      Так что или используйте умные указатели (они сами заботятся об освобождении выделенной памяти при выходе из области видимости), или освобождайте ее сами перед выходом из функции или держите весь небольшой массив на стеке.

  • @veoramid
    @veoramid 3 หลายเดือนก่อน

    Вспоминается "64 килобайта хватит всем" ©

    • @ajdarseidzade688
      @ajdarseidzade688 3 หลายเดือนก่อน

      640 КБ, а не 64. Вы видимо и не програмили в это время и даже не знаете о чем речь.

  • @BRICKonYourHead
    @BRICKonYourHead 3 หลายเดือนก่อน

    Добрый день. Вопрос от полуламера - в чём вообще смысл произвольного выделения динамической памяти на микроконтроллерах в небольших/средних проектах? Я может чего то не понимаю, но вроде в МК есть встроенный аппаратный шедулер для выделения/удаления всех не статических данных?

    • @alexmorozov73
      @alexmorozov73  3 หลายเดือนก่อน

      Как столкнетесь с реальной задачей, так подобные вопросы сами собой пропадут. И фантазии на тему "аппаратных шедулеров для памяти" в МК. :)
      Например, хотя бы разбор или формирование HTTP или JSON пакета.
      По факту весь ESP-IDF построен на структурах в динамической памяти.

    • @BRICKonYourHead
      @BRICKonYourHead 3 หลายเดือนก่อน

      @@alexmorozov73 Спасибо за ответ. З.Ы. по поводу аппаратного это да, что то я фигню написал) Думал про одно, а пальцы набрали другое... Имел в виду команды вшитые в среду разработки... Именно то про что Вы говорили в начале видео - память перестаёт (вроде бы) выделяться после выхода из функции где была вызвана переменная.

  • @user-dj8fg7qe9e
    @user-dj8fg7qe9e 3 หลายเดือนก่อน

    Огромное спасибо за ваши уроки! Не в тему данного видео, хотел бы попросить вас найти время и рассказать о самой работе программиста микроконтроллеров, о вашем опыте и над какими проектами работали, дать советы новичкам кто только устроился и начинает свой трудовой путь.

    • @alexmorozov73
      @alexmorozov73  3 หลายเดือนก่อน

      Увы, я не программист МК и на ваши вопросы у меня нет ответов.
      Это просто хобби, скорее зарядка для ума. Да, я иногда делаю проекты на заказ, но только те, которые мне интересны и являются каким-нибудь вызовом обыденности.

  • @user-tz2gx7ow7p
    @user-tz2gx7ow7p 3 หลายเดือนก่อน

    В моей стране уже 10лет СвО😮😢.
    Всех найдём, всех....

  • @MrLagger1996
    @MrLagger1996 3 หลายเดือนก่อน

    лучше не делать динамическое выделение имхо, если уж на то пошло, лучше в сторону очередей посмотреть

    • @alexmorozov73
      @alexmorozov73  3 หลายเดือนก่อน

      А очереди по вашему какую память используют? :)