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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Как узнать размер двумерного массива?  (Прочитано 14343 раз)
Joss
Гость
« : Август 12, 2009, 20:46 »

Что то я не догоняю, подскажите:

Код:
static QString settingNames[][3];

QString Settings::settingNames[][3] = {
    {QString("NotifyNewApp"), QString("checkBox_"), QString("GeneralTab")},
    {QString("PopupNotify"), QString("checkBox_"), QString("GeneralTab")}
};

Как узнать размерность массива?
Через sizeof не получается:
"error: invalid application of `sizeof' to incomplete type `QString[][3]'", если только не указать размер массива явно.
« Последнее редактирование: Август 13, 2009, 11:41 от Joss » Записан
Tonal
Гость
« Ответ #1 : Август 13, 2009, 07:50 »

Код
C++ (Qt)
sizeof(settingNames) / sizeof(settingNames[0])
 
Не оно? Улыбающийся
Записан
Joss
Гость
« Ответ #2 : Август 13, 2009, 10:39 »

Код
C++ (Qt)
sizeof(settingNames) / sizeof(settingNames[0])
 
Не оно? Улыбающийся

Так вот если явно не указывать размер массива в объявлении, то компилятор выдает
"error: invalid application of `sizeof' to incomplete type `QString[][3]'"
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Август 13, 2009, 11:31 »

Код
C++ (Qt)
sizeof(settingNames) / sizeof(settingNames[0])
 
Не оно? Улыбающийся

Так вот если явно не указывать размер массива в объявлении, то компилятор выдает
"error: invalid application of `sizeof' to incomplete type `QString[][3]'"

sizeof работать будет но в том же файле и после полного описания/инициализации. А иначе компилятор видит static QString[][3] как предварительное описание и sizeof не получить

Edit: можно добавить функцию с телом "в нужном месте" и вызывающую sizeof
« Последнее редактирование: Август 13, 2009, 11:38 от Igors » Записан
Joss
Гость
« Ответ #4 : Август 13, 2009, 11:40 »

Аааа.... вот оно что. Спасибо! Не знал, что в том же файле!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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