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

 
 
> Динамический массив структур, Создание / удаление
YChebisheva
сообщение May 5 2009, 09:25
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 9-01-09
Пользователь №: 43 070



К примеру у меня есть структура и я хочу работать с динамическим массивом, правильно ли будет:
Код
typedef struct {
            DWORD               Debug;
            char               *Oerr;
            char                Oerr_num;
            WORD                Data_FC;
                char                Nfunc;
          } SProba;
...
int num = 3;
SProba *dat = (SProba*) malloc(sizeof(SProba) * num);
SProba *elem = &dat[1];
elem->Oerr = (char*) malloc(10);
....
for(i = 0; i < num; i++)
   free(dat[i]->Oerr;
free(dat);
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
YChebisheva
сообщение May 6 2009, 08:28
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 9-01-09
Пользователь №: 43 070



у меня ещё вопрос возник по части объема, которая занимает структура.
Есть, к примеру, структура:
Код
typedef struct {              
                long   *Debug;
                char    Nfunc;
               } SGfuncBAK;

Показывает, что 8 байт, 4 понятно на указатель, а куда ещё 4, а не 1? или там выравнивание?
Go to the top of the page
 
+Quote Post
Палыч
сообщение May 6 2009, 09:07
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(YChebisheva @ May 6 2009, 11:28) *
или там выравнивание?
Выравнивание. Обычно его можно уменьшить с потерей скорости доступа, но не на всех платформах.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- YChebisheva   Динамический массив структур   May 5 2009, 09:25
- - Oldring   Цитата(YChebisheva @ May 5 2009, 13:25) f...   May 5 2009, 09:32
- - YChebisheva   Oldring, описалась. Понятно, что скобку не закрыла...   May 5 2009, 11:15
|- - Палыч   Цитата(YChebisheva @ May 5 2009, 14:15) А...   May 5 2009, 11:46
- - Злодей   Простите, а разве нельзя? Типа было под него выдел...   May 5 2009, 12:05
|- - Палыч   Цитата(Злодей @ May 5 2009, 15:05) интере...   May 5 2009, 12:28
|- - Сергей Борщ   Цитата(Злодей @ May 5 2009, 15:05) Прости...   May 5 2009, 13:14
- - _Pasha   Цитата(YChebisheva @ May 5 2009, 12:25) К...   May 5 2009, 13:22
|- - Палыч   Цитата(_Pasha @ May 5 2009, 16:22) но тол...   May 5 2009, 13:31
|- - _Pasha   Цитата(Палыч @ May 5 2009, 16:31) Разве m...   May 5 2009, 15:07
- - YChebisheva   Ребята это я виновата, Вас всех запутала. Понятно,...   May 5 2009, 14:02
|- - Палыч   Цитата(YChebisheva @ May 5 2009, 17:02) М...   May 5 2009, 14:17
- - YChebisheva   Как понимаю особой разницы malloc и calloc нет, пр...   May 6 2009, 06:31
|- - _Pasha   Цитата(YChebisheva @ May 6 2009, 09:31) ...   May 6 2009, 06:35
|- - _Pasha   Если мы(Вы) имеем дело с С99 и gnu99, можно смело ...   May 6 2009, 10:25
|- - zltigo   Цитата(_Pasha @ May 6 2009, 13:25) Если м...   May 6 2009, 10:54
|- - _Pasha   Цитата(zltigo @ May 6 2009, 13:54) fast, ...   May 6 2009, 15:13
- - Злодей   Здесь сказано: ЦитатаРазмер структуры выравниваетс...   May 6 2009, 09:50
- - YChebisheva   А как определить, какой у меня компилятор, если пи...   May 6 2009, 10:47
- - YChebisheva   с типами разобралась. А может лучше объявить всю с...   May 6 2009, 12:04
|- - zltigo   Цитата(YChebisheva @ May 6 2009, 14:56) А...   May 6 2009, 12:09
- - YChebisheva   . А как определить, какой у меня компилятор, если...   May 6 2009, 12:33


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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 11:54
Рейтинг@Mail.ru


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