ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 17.05.2010, 12:54
Аватар для greki_hoy
greki_hoy
Познающий
Регистрация: 04.03.2010
Сообщений: 32
Провел на форуме:
32525

Репутация: 23
По умолчанию

2 d_x

int i, len;
for(i = 0, len = sizeof(arr)/sizeof(arr[0]); i < len; i++)
//...
sizeof(arr)/sizeof(arr[0]) это выражение после вычисления
на x64 имеет размер 64 значащих бита потом
в результате присваивания
len = sizeof(arr)/sizeof(arr[0])
обрезаются старшие 32 бита результат будет неверный в len
но на 32 битной системе с этим проблем не будет
но могут быть другие
sizeof(arr)/sizeof(arr[0]) вернет 32 значащих бита рассмариваемых
как беззнаковое число но у Вас в len может оказатся
отрицательное число после присваивания (если 31 бит включен
будет он рассматривается как знак в len) так как у Вас len знаковая
переменная то это условие i < len никогда не выполнится
не будет ни одной итерации цикла

Последний раз редактировалось greki_hoy; 17.05.2010 в 13:00..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ай нид хелп A_n_d_r_e_i Болталка 3 25.02.2010 11:45
Нид хелп ~Dala$$~ PHP, PERL, MySQL, JavaScript 11 28.01.2007 21:04
Ай нид хелп! Grinder Болталка 12 22.06.2006 05:51



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ