[ azzpoz @ 16.04.2013. 21:58 ] @
| Code: char *niz[2]={"azz"};
char niz2[2];
double *pokazivac=NULL;
char *pokazivac2=NULL;
cout<<"\n\t -> "<<sizeof(niz);
cout<<"\n\t\t -> "<<sizeof(niz2);
cout<<"\n -> "<<sizeof(pokazivac)<<"\t pokazivac2(char) -> "<<sizeof(pokazivac2)<<endl;
Pretraživao sam po internetu i nisam siguran zašto je pokazivač uvijek veličine 4!
Da li je pokazivač "SISTEMSKE(konstantne)" veličine određen sistemom, u ovom slučaju OS-om 32bitni??? |
[ Mihajlo Cvetanović @ 17.04.2013. 09:29 ] @
Sam C standard ne propisuje koliki će pokazivač da bude, i to je ostavljeno piscima kompajlera da odaberu. Najčešće prati arhitekturu, pa je 32-bitni u 32-bitnom procesu i 64-bitni u 64-bitnom. Obrati pažnju da ako napraviš 32-bitnu aplikaciju i onda je pokreneš na 64-bitnom Windowsu, pointer će i dalje biti 32-bitni. Postoje izuzeci u vezi sa veličinom pointera, ali tiču se nekih egzotičnih hardvera za koje verovatno nikad nećeš pisati softver.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.