Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > вложенная структура + malloc


Автор: Artemon 21.9.2008, 00:53
Код

struct font
{
    struct image *img;
    struct glyph
    {
        int xmin, xmax, ymin, ymax;
        int count; /* Black pixel count */
        char c;
    }*glyphs;
    int size;
};


хочу создать экземпляр glyph:

Код

font->glyphs = (font::glyph*)malloc(font->size * sizeof(struct glyph));
font->glyphs = (glyph*)malloc(font->size * sizeof(struct glyph));


Компилятор вообще говорит:Error    13    error C2143: syntax error : missing ';' before 'type'    

P.S.
VS2005

Автор: mes 21.9.2008, 02:32
я так понял пример на чистом Си. А в нем разве есть оператор :: ? 

Автор: MAKCim 21.9.2008, 10:12
в С так
Код

font->glyphs = malloc(font->size * sizeof(*(((struct font*)0)->glyphs)));

в С++
так
Код

font->glyphs = static_cast<font::glyph*>(malloc(font->size * sizeof(*((static_cast<font*>(0))->glyphs))));


Добавлено через 4 минуты и 26 секунд
в GCC возможно так
Код

font->glyphs = malloc(font->size * sizeof(typeof(*(font->glyphs))));

Автор: Artemon 22.9.2008, 16:41
+1

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)