реклама на сайте
подробности

 
 
> Выделение памяти в Keil
glonium
сообщение Sep 6 2012, 06:19
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303



Доброго всем времени суток народ!
Столкнулся с интересным явлением описал шаблон класса типа
Код
template<class TData>
class TSingleListItem
{
    friend class TSingleList<TData>;
    private :
        TSingleListItem<TData> *_next;
        TData _data;
        TSingleListItem(TData d,TSingleListItem<TData> *n);
        ~TSingleListItem();
    // Запрет копирования
        TSingleListItem(TSingleListItem<TData> &i);
        TSingleListItem<TData> & operator = (TSingleListItem<TData> &i);
    public :
        TData operator * ();
        TSingleListItem<TData> *Next(void );
};


строка
Код
s=sizeof(TSingleListItem<char>);

говорит что размер TSingleListItem<char> 8 байт,
но при выделении памяти для TSingleListItem<char> память выделяется по 16 байт! хотя размер минимального блока составляет 8 байт!
В чём может быть дело?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
glonium
сообщение Sep 6 2012, 08:08
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 27-05-11
Пользователь №: 65 303



Конечно повод для волнения ведь для *char'ов например выделяет по 8 байт! и разница в адресах в подряд идущих *char равна 8 байтам!

Сообщение отредактировал glonium - Sep 6 2012, 08:12
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 6 2012, 08:38
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(glonium @ Sep 6 2012, 12:08) *
Конечно повод для волнения ведь для *char'ов например выделяет по 8 байт! и разница в адресах в подряд идущих *char равна 8 байтам!

Это субъективно. Меня, например, этот факт нисколько не волнует. Наоборот, мне кажется, что это вполне естественно. Накладные расходы при динамическом выделении памяти будут всегда.
Если вас не устраивает библиотечный менеджер памяти, можете сделать свой (или позаимствовать где-нибудь).
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 08:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01323 секунд с 7
ELECTRONIX ©2004-2016