jcxz 234 10 марта, 2020 Опубликовано 10 марта, 2020 · Жалоба 4 часа назад, makc сказал: Как вы можете заметить, здесь не используется выделение в куче, используется стек. При этом в стеке выделяется необходимое количество памяти и далее изменяется значение указателя стека (sp). ...и для доступа к аргументам функции и локальным переменным занимается регистр R7, вместо использования SP как в обычных случаях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 9 10 марта, 2020 Опубликовано 10 марта, 2020 · Жалоба 11 часов назад, Xenia сказал: Скажем, если некая функция, вызывается миллион раз в секунду, всякий раз при входе аллокируя память из хипа, а при выходе ее деаллокируя, то будет большой объем лишних операций, обременительных для МК с небольшими тактовыми частотами. На мой взгляд, пример неудачный. Если функция вызывается миллион раз в секунду, нет смысла в динамическом выделении памяти с целью ее экономии: объявляем массивы по максимуму и работаем на максимальной скорости. Единственный (редчайший) вариант, когда синхронно с этой функцией вызывается вторая, которая тоже может потребовать большой массив, и размеры этих массивов меняются в противофазе. Другое дело - высвобождение памяти на заметное время (единицы-десятки секунд или на всю сессию). Но тут malloc'а вполне достаточно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться