Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Quantity
12 / 12 / 1
Регистрация: 06.06.2012
Сообщений: 136
#1

Improper use of typedef - C++

12.06.2013, 15:36. Просмотров 456. Ответов 8
Метки нет (Все метки)

В структурах :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct ActionController
{
public :
int Signature;
int ID;
int ndx;
int ActionSetsCount; 
ActionSet * ASItems; 
};
struct AIPolicy
{
public :
int Signature; 
int ActionControllerCount; 
ActionController * ACItems; 
};
В коде:
C++
1
2
3
4
5
6
7
8
9
10
11
TMemoryStream *st = new TMemoryStream();
if(!OpenDialog1->Execute())
    return;
st->LoadFromFile(OpenDialog1->FileName);
 
AIPolicy *ai = new AIPolicy();
 
st->Read(&ai->Signature,4);
st->Read(&ai->ActionControllerCount,4);
ai->ACItems = new ActionController[ai->ActionControllerCount];
ActionController *(ai->ACItems[0]) = new ActionController();
На последней строке :
C++
1
ActionController *(ai->ACItems[0]) = new ActionController();
Выбивает Improper use of typedef
Как исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 15:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Improper use of typedef (C++):

improper use of typedef - C++
Доброго времени суток, проблемка часто с которой сталкиваюсь я в процессе разработки это вызов членов функции т.е из каких то частей...

Ошибка improper use of typedef - C++
Программа формирует список из 5 чисел, добавляет число в список, удаляет число из списка и выводит список на экран. Указатель на начало...

typedef в c++ - C++
Здравствуйте! Нужно собрать полную информацию по оператору typedef в c++. Пока нашел, что typedef используется для задания новых...

Typedef - C++
Наткнулся на пример ниже: typedef char *cstring; //Каков тип переменной cstr в следующем объявлении: const cstring cstr; ...

typedef - C++
Доброго времени суток, уважаемые программисты! Не могу понять несколько строк из примера учебника Дейтела. С первой строкой все понятно,...

Typedef - C++
Доброго времени суток. Привожу вам отрывок из книги "C и Visual C++ 2008 для начинающих". В книге приведен пример объявления структуры с...

8
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
12.06.2013, 16:27 #2
Цитата Сообщение от Quantity Посмотреть сообщение
ActionController * ACItems;
Цитата Сообщение от Quantity Посмотреть сообщение
ai->ACItems = new ActionController[ai->ActionControllerCount];
массив уже заполнен объектами класса ActionController, а дальше
Цитата Сообщение от Quantity Посмотреть сообщение
ActionController *(ai->ACItems[0]) = new ActionController();
ты думаешь что в ячейке ai->ACItems[0] лежит указатель и выделить для него память, а там лежит объект!
0
stima
483 / 335 / 38
Регистрация: 22.03.2011
Сообщений: 1,077
Завершенные тесты: 2
12.06.2013, 17:46 #3
Этим Вы создаете массив ActionController размером ai->ActionControllerCount. И сохраняете указатель в ai->ACItems .
C++
1
ai->ACItems = new ActionController[ai->ActionControllerCount];
По адресу ai->ACItems[0] уже указатель на созданный обьект ActionController .
0
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
12.06.2013, 17:50 #4
stima, ai->ACItems - указатель не на массив указателей! лежал бы там указатель - компилятор строчку схавал и не подавился бы!
0
stima
483 / 335 / 38
Регистрация: 22.03.2011
Сообщений: 1,077
Завершенные тесты: 2
12.06.2013, 17:52 #5
Цитата Сообщение от Кудаив Посмотреть сообщение
stima, ai->ACItems - указатель не на массив указателей!
Я такое говорил?) Где?)
0
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
12.06.2013, 17:54 #6
Цитата Сообщение от stima Посмотреть сообщение
По адресу ai->ACItems[0] уже указатель на созданный обьект ActionController
не указатель там
0
stima
483 / 335 / 38
Регистрация: 22.03.2011
Сообщений: 1,077
Завершенные тесты: 2
12.06.2013, 17:56 #7
А что там?)
0
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
12.06.2013, 18:01 #8
объект лежит
0
stima
483 / 335 / 38
Регистрация: 22.03.2011
Сообщений: 1,077
Завершенные тесты: 2
12.06.2013, 18:05 #9
Кхм, перечитал, согласен не правильно выразился. Я имел виду, что
C++
1
ai->ACItems + index
даст указатель на память там где храниться обьект. Да оператор [] вернет не указатель на обьект, а ссылку на обьект - в этом Вы правы.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2013, 18:05
Привет! Вот еще темы с ответами:

typedef - C++
double f(double x){ } typedef double (*TPF)(double); TPF fff = f; fff(10.0); как и почему это работает корректно, если в...

typedef - C++
Сталкнулся с таким объвлением typedef __mpz_struct mpz_t; Не могу врубится что оно значит? ...

Оператор typedef - C++
Имеет ли смысл говорить о времени жизни, области видимости и о связывании для типов (НЕ ПЕРЕМЕННЫХ), которые определяются этой директивой?

работа с typedef - C++
Объясните пожалуйста в чем смысл конструкции: typedef struct _XMFLOAT2 { FLOAT x; FLOAT y; } XMFLOAT2; typedef создает...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
12.06.2013, 18:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru