Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Не работает

  • Автор темы Автор темы A'Kon
  • Дата начала Дата начала
ROAD TO THE LEGEND
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
7 Фев 2018
Сообщения
2,223
Реакции
714
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
ImGui::Combo("abcd", SETTINGS::settings.weapon, hcweapon, ARRAYSIZE(hcweapon));
WIDs90mwj4o.jpg
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
мне бы блять кто помог нахуй
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А у него не так ? Я не понимаю почему вы пишите ARRAYSIZE. Есть же sizeof(hcweapon)
ImGui::Combo("abcd", &SETTINGS::settings.weapon, hcweapon, ARRAYSIZE(hcweapon));
-------------------------------^-------------------------------------------------------------------------------------------
 
Есть же sizeof(hcweapon)
для массивов такое не прокатит, нужно использовать sizeof(hcweapon)/sizeof(hcweapon[0]), либо использовать STL

Наглядный пример:
Код:
Expand Collapse Copy
#define ARRAYSIZE(ar) (sizeof(ar)/sizeof(ar[0]))

    int  buf[] = { 1,2,3,4,5,6,7 };
    printf_s("1)   %d\n", sizeof(buf));
    printf_s("2)   %d\n", ARRAYSIZE(buf));
результатом будет:
1) 28 это размер занимаемый в памяти. int = 4байта, соответственно массив из 7 элементов занимает 7*4 = 28байт
2) это как раз и есть количество элементов в массиве, что нам и требуется.


можно поступить так:
Код:
Expand Collapse Copy
template<class T, std::size_t N>
char(&arr(T(&)[N]))[N];
#define lenghtOf(a) sizeof(arr(a))

Код:
Expand Collapse Copy
printf_s("3)   %d\n", lenghtOf(buf));
и результат:
 
Последнее редактирование:
можно поступить так:
Код:
Expand Collapse Copy
template<class T, std::size_t N>
char(&arr(T(&)[N]))[N];
#define lenghtOf(a) sizeof(arr(a))
Код:
Expand Collapse Copy
template <class C> constexpr auto size(const C& c) -> decltype(c.size()){ return c.size();}
И эквивалентно это все
Код:
Expand Collapse Copy
std::size();
Спасибо C++17 :/
 
Назад
Сверху Снизу