Официальный сайт студ.городка НГТУ
Программирование и БД » инициализация данных 

#1  17.09.11 15:29

инициализация данных

например такая структура
Код:


struct x6
{
    void *data;
    x6 **link;
};

как статически задать?

вот так ошибка:
Код:


x6    a1 = {"a1", NULL},        a2 = {"a2", NULL},        a3 = {"a3", NULL},
    a4 = {"a1<-a4", {&a1, &a2, &a3} };

Offline

#2  17.09.11 16:59

Re: инициализация данных

Flinn, у меня 2 вопроса -
1)

Flinn написал(а):

x6 **link;

зачем здесь указатель на указатель?
2)

Flinn написал(а):

{&a1, &a2, &a3}

вот этим ты чего желаешь добиться?

Offline

#3  17.09.11 17:10

Re: инициализация данных

1. это типа дерево с динамическим количеством потомков.
2. задать несколько потомков у узла

Offline

#4  17.09.11 17:46

Re: инициализация данных

и еще, что означает вот это:
typedef int (*PCMP)(void*, void*);

Offline

#5  18.09.11 01:25

Re: инициализация данных

Flinn написал(а):

typedef int (*PCMP)(void*, void*);

typedef указателя на функцию int func(void* p,void* t);
Используешь следующим образом

Код: c++:

PCMP fpointer=func;//или fpointer=&func или fpointer(func) или fpointer=(&func) 
fpointer(a,b);

Исправлено Revenger (18.09.11 05:35)

Offline

#6  18.09.11 05:50

Re: инициализация данных

Может быть ты хочешь сделать что-то типа такого:

Flinn написал(а):

Код: с++:

x6    a1 = {"a1", NULL},        a2 = {"a2", NULL},        a3 = {"a3", NULL};
x6*  ta4[] = {&a1, &a2, &a3,NULL};
x6    a4 = {"a1<-a4",ta4}

?
Тогда лучше, чтоб был типа терминал
x6* term[]={NULL}
и листы должны тогда выглядеть не a1 = {"a1", NULL}, а a1 = {"a1", term} - чтоб проще обрабатывать.

Исправлено Revenger (18.09.11 05:52)

Offline

#7  18.09.11 09:36

Re: инициализация данных

да, именно это я и хотел. спасибо

Offline

Программирование и БД » инициализация данных 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.061 сек.
Выполнено 14 запросов.