Mihai RUSU wrote:
> Daca era struct {char a,b,c;} da (nu ai precizat ce variabila este).
Incearca asta:
printf("%d\n", sizeof(struct {char a,b,c;}));
Cred ca o sa ai o surpriza.:-)
Si se vedea clar ce variabila am folosit in mesajul care a inceput
thread-ul asta.
> Am intrebat si eu pe unii "mai mari" si se pare ca gcc aliniaza
> array-urile la 32 bytes (sa incapa intr-un "cache line") si chiar de la
> gcc >= 3.3 cica adauga un byte in plus la arrays ca sa "prevent off-by-one
> overflow exploits".
Daca ai intrebat pe o alta lista de discutii poti sa-mi spui pe care? Ca
tocmai m-am inscris si eu pe alte liste ca sa pun aceeasi intrebare.
Din cate am testat eu nu mi se pare deloc ca gcc-ul (versiunea 3.3.2) ar
alinia tablourile la 32 bytes, dar chiar daca ar fi asa nu ar explica
comportarea gcc-ului pe care am observat-o eu.
---
Detalii despre listele noastre de mail: http://www.lug.ro/