int main()
{
int arr[] = { 1, 2, 3, 100, 500, 10000, 123 };
int i, len;
for(i = 0, len = sizeof(arr)/sizeof(int); i < len; i++)
{
arr[i] &= 0xF;
printf("%u\n", arr[i]);
}
free(arr);
return 0;
}
освобождаете массив в стеке сильно
sizeof(arr)/sizeof(int) плохо
sizeof(arr)/sizeof(arr[0]) хорошо
sizeof(arr)/sizeof(arr[0]) вернет size_t 32 битное значение в x32 системе и 64 битное в x64 но из за присваивания его переменной len типа int
потеряете 32 старших бита в x64 системе не сможете обрабатывать большие массивы
так как int и в x32 и в x64 32 бита в отличии от size_t
результата операции sizeof которая на x32 32 бита а на x64 64 бита
в первом задании у Вас тоже ахтунг с типами
Последний раз редактировалось greki_hoy; 17.05.2010 в 05:27..