Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
1

typedef struct{} *type;

12.02.2012, 20:45. Показов 3787. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
правильно ли я поступаю?
Правильно ли выделяю память?
требуется ли здесь typedef?
В конечном итоге мне нужен будет массив из Polynomial.
C
1
2
3
4
5
6
7
8
typedef struct{
   ldouble *factors;
   int power;
} *Polynomial;
const double eps = 0.000001;
//...
   Polynomial polinom = (Polynomial)malloc(sizeof(Polynomial));
   polinom->factors=(ldouble *)malloc(sizeof(ldouble)*count);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2012, 20:45
Ответы с готовыми решениями:

typedef struct X{X* pX;}X;
Собственно сабж: typedef struct X{ X* ptrX; }X; Когда происходит объявление ptrX тип...

Typedef struct
Добрый день!! пытаюсь разобраться со структурами,вроде бы как все понятно кроме одного.Ключевое...

не понимаю typedef struct define
1) В чем принципиальная разница между #define char T typedef char N; И когда используют? ...

typedef struct Foo или struct Foo
В чём разница между: typedef struct { int a; }Foo; и struct Foo { int a; }

6
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
12.02.2012, 20:51 2
я бы сделал так
C++
1
2
3
4
5
6
7
8
typedef struct{
   ldouble *factors;
   int power;
} Polynomial;
const double eps = 0.000001;
//...
   Polynomial *polinom = (Polynomial *)malloc(sizeof(Polynomial));
   polinom->factors=(ldouble *)malloc(sizeof(ldouble)*count);
1
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,596
12.02.2012, 20:54 3
Цитата Сообщение от gGrn-7DA Посмотреть сообщение
правильно ли я поступаю?
С точки зрения стиля, лучше определить тип Polynomial отдельно от типа указателя.

Цитата Сообщение от gGrn-7DA Посмотреть сообщение
Правильно ли выделяю память?
Нет, неправильно.
Polynomial -- указатель на структуру. Значит его размер равен размеру указателя.
(Polynomial)malloc(sizeof(Polynomial)) -- выделение памяти под указатель на структуру.

Цитата Сообщение от gGrn-7DA Посмотреть сообщение
требуется ли здесь typedef?
typedef поможет не писать везде ключевое слово struct.
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
12.02.2012, 20:54 4
Только по использовании не забудь удалить сначала factors, а потом polynom
0
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
12.02.2012, 20:59  [ТС] 5
Сомневался надо ли тут разименовывание...тайпдеф для меня нов.
да, забыл
C
1
typedef long double ldouble;
мне затем потребуется работать с массивом этих полиномов.
пойдет ли такое объявление?
C
1
2
Polynomial *polinom = (Polynomial *)malloc(sizeof(Polynomial)*count);
polinom[i].factors=(ldouble *)malloc(sizeof(ldouble)*count);
Не будет ли проблем с памятью?

Добавлено через 2 минуты
Цитата Сообщение от lemegeton Посмотреть сообщение
С точки зрения стиля, лучше определить тип Polynomial отдельно от типа указателя.
т.е. так?
C
1
2
struct s{};
typedef s typeS;
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,596
12.02.2012, 21:05 6
Цитата Сообщение от gGrn-7DA Посмотреть сообщение
Сообщение от lemegeton
С точки зрения стиля, лучше определить тип Polynomial отдельно от типа указателя.
т.е. так?
Код C
1
2
struct s{};
typedef s typeS;
Т.е. как у Байта в коде. Тайпдеф структуры, а не указателя на структуру.
Нет особых причин не писать
C
1
2
3
typedef struct StructType {
  ...
} StructType;
Цитата Сообщение от gGrn-7DA Посмотреть сообщение
Polynomial *polinom = (Polynomial *)malloc(sizeof(Polynomial)*count);
polinom[i].factors=(ldouble *)malloc(sizeof(ldouble)*count);
Это объявление корректно.
Главное, не забыть освобождать сначала factors, а затем polinom.
1
мну довольно <(-__-)l
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
12.02.2012, 21:09  [ТС] 7
Спасибо.
0
12.02.2012, 21:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2012, 21:09
Помогаю со студенческими работами здесь

Что значит надпись typedef struct TElem?
Здравствуйте, решаю задачу со списком, разбираю один код. У нас есть структура typedef struct...

Без использования typedef все работает. При добавлении typedef — более 100 ошибок
Есть программа, с описанием структуры и функций, работающими с ней. Без использования typedef все...

Struct sockaddr vs. struct sockaddr_in
Вопрос,связанный с переносимостью кода на другие платформы. Читаю эту книжку...

Как правильнее обозначать указатели: TYPE* value или TYPE *value?
полный пустяк, но не дает мне покоя уже давно: как правильнее обозначать указатели: TYPE* value или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru