Информатика и технология программирования


         

Структуры переменной размерности


При создании структуры в динамической памяти возможен вариант, когда размерность ее является переменной. В этом случае функции, создающие такие структуры, должны вычислять ее текущий размер для функции malloc. Рассмотрим пример хранения в структуре строки переменной длины. В определении переменная часть представлена массивом нулевой размерности. При создании динамической переменной резервируется память под фиксированную часть структуры и текущую размерность переменной части -длину строки:


struct man
{
char name[30]; // Фиксированная часть


int dd,mm,yy;
char address[]; // Переменная часть


};
man *create()
{
man *p;
char xxx[200];
gets(xxx); // Ввод значения элемента address


p = malloc(sizeof(man) + strlen(xxx) + 1);
strcpy(p-&#62address, xxx);
// Ввод фиксированной части


return p;
}



Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий