Показать сообщение отдельно

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

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

Цитата:
Сообщение от d_x  
Второе задание на Си:

PHP код:
#include "stdio.h"

int main()
{
    
int arr[] = { 12310050010000123 };
    
int ilen;
    
    for(
0len sizeof(arr)/sizeof(int); leni++)
    {
          
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..
 
Ответить с цитированием