
17.05.2010, 03:53
|
|
Познающий
Регистрация: 04.03.2010
Сообщений: 32
Провел на форуме: 32525
Репутация:
23
|
|
Сообщение от d_x
Второе задание на Си:
PHP код:
#include "stdio.h"
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..
|
|
|