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