Например:
typedef struct sTest{
float X, Y, Z;
sTest Testes;
};
sTest Normal;
Какая область видимости этой переменной?
Что-то я не пойму. Какая-то рекурсия получается:
Normal.Testes.Testes...
Объясните на примере или линк на туториал с подобным траблом/примером.
Другие языки программирования и технологии
[C/C++] Oбъявление переменной типа структуры в этой же структуре
Этот код не работает.
По твоему вопросу - включать в структуру можно только указатель на нее саму, но не саму структуру:
struct sTest{
float X, Y, Z;
struct sTest *Testes;
};
Структура в самой себе - выражение бессмысленное, т. к. потребует бесконечность памяти; да и вообще, из соображений неопределенности памяти нельзя создавать что-то не до конца определенного типа - только ссылку на это.
По typedef: общий вид выражения typedef тип1 тип2; означает, то в дальнейшем тип2 будет означать то же, что и тип1.
struct Имя{что-то} будет создавать в C/C++ новый тип с сложным названием struct Имя; в C++ к этому типу можно обращаться через Имя, в C - только полностью.
typedef struct Имя1{что-то} Имя2;, таким образом, будет создавать два типа - struct Имя1 и Имя2.
Ну и еще пара конструкций:
struct Имя1{что-то} Имя2, Имя3; - создать две переменные Имя2, Имя3 типа struct Имя1.
typedef struct{что-то} Имя1; - создать БЕЗЫМЯННУЮ структуру и назначить ей "псевдоним" Имя1.
Все ясно или что-то уточнить?
По твоему вопросу - включать в структуру можно только указатель на нее саму, но не саму структуру:
struct sTest{
float X, Y, Z;
struct sTest *Testes;
};
Структура в самой себе - выражение бессмысленное, т. к. потребует бесконечность памяти; да и вообще, из соображений неопределенности памяти нельзя создавать что-то не до конца определенного типа - только ссылку на это.
По typedef: общий вид выражения typedef тип1 тип2; означает, то в дальнейшем тип2 будет означать то же, что и тип1.
struct Имя{что-то} будет создавать в C/C++ новый тип с сложным названием struct Имя; в C++ к этому типу можно обращаться через Имя, в C - только полностью.
typedef struct Имя1{что-то} Имя2;, таким образом, будет создавать два типа - struct Имя1 и Имя2.
Ну и еще пара конструкций:
struct Имя1{что-то} Имя2, Имя3; - создать две переменные Имя2, Имя3 типа struct Имя1.
typedef struct{что-то} Имя1; - создать БЕЗЫМЯННУЮ структуру и назначить ей "псевдоним" Имя1.
Все ясно или что-то уточнить?
Можно объявить указатель типа структура, причём не один, и нужно это для реализации, например, списков.
и зачем такой бред мутить?
Крутым программером будешь?
Крутым программером будешь?
***фарух*** ***хакимжанов***
Эм... деревья, например
там может быть только указатель. который было бы не плохо ещё и проинициализировать =)
struct St
{
float x;
St* next,prev;
};
St *tmp=new St;
tmp->prev=0;
tmp->next=new St;
tmp->next->prev=tmp;
tmp->next->next=new St;
ну, в общем, ты меня понял....
struct St
{
float x;
St* next,prev;
};
St *tmp=new St;
tmp->prev=0;
tmp->next=new St;
tmp->next->prev=tmp;
tmp->next->next=new St;
ну, в общем, ты меня понял....
Похожие вопросы
- C++. Подскажите ответ, есть какие нибудь правила инициализации вложенных структур ?
- Делфи. Есть указатель типа PChar, он указывает на структуру, как получить доступ к полям этой структуры?
- C++ как переменную (signed int) разделить на старший и младший байт, а после записать в 2е другие переменные типа char?
- Напишите пожалуйста функцию обмена значений двух переменных на си (не c++) для любого типа данных
- Как в C++ приравнять переменную и текст? А то такую запись нельзя. А без этого задачу не решить
- C++ Классы и Переменные
- Учу C++! Уже знаю: типы данных, циклы. условия, привидения и т. д учу 5дней. вот программа! Как норм за 5 дней?
- Зачем в С/C++ создан отдельный тип "указатель"
- Как удалить символ из переменной типа строки в PHP?
- Сравнение переменных типа char в с++
Что можно сделать с этим указателем? Какие действия?