amarao (amarao_san) wrote,
amarao
amarao_san

Глупый вопрос по Си

struct sysinfo {
        long uptime;                    /* Seconds since boot */
        unsigned long loads[3];         /* 1, 5, and 15 minute load averages */
        unsigned long totalram;         /* Total usable main memory size */
        unsigned long freeram;          /* Available memory size */
        unsigned long sharedram;        /* Amount of shared memory */
        unsigned long bufferram;        /* Memory used by buffers */
        unsigned long totalswap;        /* Total swap space size */
        unsigned long freeswap;         /* swap space still available */
        unsigned short procs;           /* Number of current processes */
        unsigned short pad;             /* explicit padding for m68k */
        unsigned long totalhigh;        /* Total high memory size */
        unsigned long freehigh;         /* Available high memory size */
        unsigned int mem_unit;          /* Memory unit size in bytes */
        char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */
};


При такой задаче массива (я про loads) он хранится внутри структуры? И к нему можно обращаться как info.loads[0]?

Что-то я либо не понимаю в том, как интерпретируется [] в Си, либо что-то тут не так. Ведь info.loads[2] эквивалентно *((long*)(info.loads)+2). Т.е. берётся указатель из поля loads, к нему добавляется sizeof(long)*2, и из указанного адреса памяти читается информация... Это совсем не то же самое, что три пакованных инта. Или всё-таки в данном случае отрабатывается "третье число load в структуре?
Tags: c
Subscribe

  • LSI HBA

    Собрать LSI HBA на 2.6.39 (и около него) не возможно - т.к. был выпилен linux/smp_lock.h, то соответствующих функций нет. В принципе, в текущей…

  • Yieeks

    p = name + strlen(p_xvd); for(i = 0, ptr = alpha; i < strlen(alpha); i++) { if(*ptr == *p) break; *ptr++; } *p++; ret = (202*256) + (16*i) +…

  • Извращения на Си

    while(malloc(4096)); printf("out of mem\n");

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 8 comments