Russian Qt Forum

Qt => Вопросы новичков => Тема начата: alik от Февраль 12, 2016, 20:16



Название: Цикл for от enum
Отправлено: 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
"


Название: Re: Цикл for от enum
Отправлено: alik от Февраль 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
"



Ошибка была в другом, разобрался.
Вопрос снимается