|
Динамические переменные и массивы, Можно ли задать динамические массивы ? |
|
|
|
 |
Ответов
|
Sep 2 2013, 07:55
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(Navovvol @ Sep 2 2013, 11:51)  Буду краток. Работают ли операторы "new" и "delete" ? Есть ли их аналоги ? Проект делается на Си. Нет в си нет "new" и "delete", зато есть malloc и free. + ещё есть такая возможность.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Sep 11 2013, 17:04
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(demiurg_spb @ Sep 2 2013, 11:55)  + ещё есть такая возможность. Для маленьких микропроцессоров не лучший способ создавать большие массивы в стеке. Мне и для больших это не нравится. Лучше malloc() in heep.
Сообщение отредактировал Tarbal - Sep 11 2013, 17:04
|
|
|
|
|
Sep 12 2013, 06:42
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(Tarbal @ Sep 11 2013, 21:04)  Для маленьких микропроцессоров не лучший способ создавать большие массивы в стеке. Мне и для больших это не нравится. Лучше malloc() in heep. Ничем не лучше. Если компилятор умеет хорошо это делать, почему бы и нет? Например iar-avr это делает отлично, а avr-gcc плохо. Создание динамического массива любого размера фактически не несёт никаких накладных расходов (кроме пары коррекций вершины стека, что в iar выливается в 2 асм-инструкции или в ноль инструкций, если и так в процедуре выделялось место для стекового фрейма). В совсем маленьких контроллерах и эти 4 байта на вес золото. А вы говорите malloc...
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Sep 12 2013, 07:52
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(demiurg_spb @ Sep 12 2013, 10:27)  О какой сборке мусора речь? Всё само-собой получится при раскрутке стека обратно. Значит, мы не об одном и том же говорим. Локальный массив, живущий во время исполнения функции и динамический объект, живущий вплоть до его целенаправленного уничтожения, это все-таки разные вещи. То есть, создавать так можно, на время перемещая SP в специальную огороженную область, а вот как обратно освобождать из-под произвольного объекта, да ещё в произвольный момент, что-то не представляю.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
Сообщений в этой теме
Navovvol Динамические переменные и массивы Sep 2 2013, 07:51      demiurg_spb Цитата(MrYuran @ Sep 12 2013, 11:52) Знач... Sep 12 2013, 08:17   Tarbal Цитата(demiurg_spb @ Sep 12 2013, 10:42) ... Sep 12 2013, 12:43    demiurg_spb Цитата(Tarbal @ Sep 12 2013, 16:43) Засад... Sep 12 2013, 12:56     Tarbal Цитата(demiurg_spb @ Sep 12 2013, 16:56) ... Sep 12 2013, 15:07      demiurg_spb Спор бесполезен.
Вы не понимаете моей основной мыс... Sep 13 2013, 06:38       Tarbal Цитата(demiurg_spb @ Sep 13 2013, 10:38) ... Sep 13 2013, 12:29        demiurg_spb Цитата(Tarbal @ Sep 13 2013, 16:29) Попыт... Sep 13 2013, 12:40         Tarbal Цитата(demiurg_spb @ Sep 13 2013, 16:40) ... Sep 13 2013, 13:22          kolobok0 Цитата(Tarbal @ Sep 13 2013, 17:22) ..А в... Sep 13 2013, 14:51          demiurg_spb Цитата(Tarbal @ Sep 13 2013, 17:22) Скажи... Sep 13 2013, 15:03           Tarbal Цитата(demiurg_spb @ Sep 13 2013, 19:03) ... Sep 13 2013, 15:24 Bear_ku The operators new and delete are not implemented, ... Sep 2 2013, 08:05 Navovvol Спасибо. Если задуманное получиться, покажу, что ... Sep 2 2013, 08:51 DASM На самом деле в эмбеддед всякие alloc штука хороша... Sep 13 2013, 13:35 Tarbal Цитата(DASM @ Sep 13 2013, 17:35) На само... Sep 13 2013, 13:50 Tarbal Цитата(DASM @ Sep 13 2013, 17:35) На само... Sep 13 2013, 14:08 DASM Причем тут рекурсия вообще ? Данные принимаются в ... Sep 13 2013, 14:01 DASM Да не буду я ничего приводить, берете какие-то лев... Sep 13 2013, 14:28 Tarbal Цитата(DASM @ Sep 13 2013, 18:28) Да не б... Sep 13 2013, 14:48  DASM Цитата(Tarbal @ Sep 13 2013, 18:48) а во-... Sep 13 2013, 14:52   Tarbal Цитата(DASM @ Sep 13 2013, 18:52) "А... Sep 13 2013, 14:58 DASM Вобщем malloc использовать стал в микроконтролерах... Sep 13 2013, 15:42 Tarbal Цитата(DASM @ Sep 13 2013, 19:42) Вобщем ... Sep 13 2013, 15:58 DASM Не слишком . Это гораздо безопаснее всего остально... Sep 13 2013, 16:07 Tarbal Цитата(DASM @ Sep 13 2013, 20:07) Не слиш... Sep 13 2013, 19:46  _Pasha Цитата(Tarbal @ Sep 13 2013, 22:46) СОЗДА... Sep 14 2013, 04:57   DASM Цитата(_Pasha @ Sep 14 2013, 08:57) Очеви... Sep 14 2013, 06:50    _Pasha Цитата(DASM @ Sep 14 2013, 09:50) Один во... Sep 14 2013, 12:27 IgorKossak Tarbal, смотрите мой комментарий к Вашему предыдущ... Sep 13 2013, 16:09 DASM Динамические на стеке ? Это как ? Учить Вас и не д... Sep 14 2013, 04:33 Tarbal Цитата(DASM @ Sep 14 2013, 08:33) Динамич... Sep 15 2013, 23:52  demiurg_spb Цитата(Tarbal @ Sep 16 2013, 03:52) А вы ... Sep 30 2013, 07:13 Tarbal Куда ушли те времена, когда требовалось мастерство... Sep 14 2013, 13:49 _Pasha Кстати, понравившийся многим манагер кучи от Zltig... Sep 14 2013, 22:06
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|