Russian Qt Forum
Ноябрь 26, 2024, 15:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Цикл for от enum  (Прочитано 1955 раз)
alik
Гость
« : Февраль 12, 2016, 20:16 »

Добрый вечер!

Есть перечисление
enum TDataType {       
     dtUNKNOWN = -1,   
     dtPLIN    = 0,         
     dtPLOG    = 1,         
     dtZ       = 2,           
     dtV       = 3,           
     dtW       = 4,         
     dtZDR     = 5,         
     dtLDR     = 6,         
     dtPHIDP   = 7,       
     dtRDR     = 8,         
     dtKDP     = 9,         
     dtZV      = 10,       
     dtHCLASS  = 11,     
     COUNT_DATATYPE = 12
     };

Есть тип:   
    typedef TRadarData TArrayRadarData[COUNT_DATATYPE];

Хочу сделать цикл:

        for (int aDataType = 0; aDataType < COUNT_DATATYPE; aDataType++)
        {
            TDataType tmp = (TDataType)aDataType;
            //  TDataType tmp = static_cast<TDataType>(aDataType);

            IOData->ArrayRadarData[tmp]->Enabled = false;
        }

В итоге программа вылетает и компилятор выдает сообщение:
"Получен сигнал
Приложение остановлено, так как оно получило сигнал от операционной системы
Сигнал: SIGSEGV
Назначение: Segmentation fault
"
Записан
alik
Гость
« Ответ #1 : Февраль 12, 2016, 20:33 »

Добрый вечер!

Есть перечисление
enum TDataType {       
     dtUNKNOWN = -1,   
     dtPLIN    = 0,         
     dtPLOG    = 1,         
     dtZ       = 2,           
     dtV       = 3,           
     dtW       = 4,         
     dtZDR     = 5,         
     dtLDR     = 6,         
     dtPHIDP   = 7,       
     dtRDR     = 8,         
     dtKDP     = 9,         
     dtZV      = 10,       
     dtHCLASS  = 11,     
     COUNT_DATATYPE = 12
     };

Есть тип:   
    typedef TRadarData TArrayRadarData[COUNT_DATATYPE];

Хочу сделать цикл:

        for (int aDataType = 0; aDataType < COUNT_DATATYPE; aDataType++)
        {
            TDataType tmp = (TDataType)aDataType;
            //  TDataType tmp = static_cast<TDataType>(aDataType);

            IOData->ArrayRadarData[tmp]->Enabled = false;
        }

В итоге программа вылетает и компилятор выдает сообщение:
"Получен сигнал
Приложение остановлено, так как оно получило сигнал от операционной системы
Сигнал: SIGSEGV
Назначение: Segmentation fault
"



Ошибка была в другом, разобрался.
Вопрос снимается
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 21.