niedziela, 25 sierpnia 2013

[C/C++] Operator sizeof() cz. 2

W poprzedniej części mówiliśmy o rozmiarach struktur. Istnieje możliwość, aby wyliczyć rozmiar struktury bez korzystania z operatora sizeof():

#include <stdio.h>

struct S{        
int a;
short b;
char c;
int d;
};

int main(int argc,char *argv[])
{
struct S arr[2];
 int size = (char*)&arr[1] - (char*)&arr[0];
printf("Sizeof: %d Bez sizeof: %d\n",sizeof(struct S),size);
return 0;
}

Tworzymy 2-elementową tablicę struktur S. Elementy tablicy zaalokowane są w ciągłym obszarze pamięci, zatem różnica pomiędzy początkowym adresem elementu o indeksie 1 i elementu o indeksie 0 zwróci faktyczny rozmiar struktury S;

Brak komentarzy:

Prześlij komentarz