On Thu, 2003-01-16 at 15:02, Mihai RUSU wrote:
> On Thu, 16 Jan 2003, Dorin Lazar wrote:
> 
> > > Vrei sa afli numarul de elemente al unui array (tratandu-l ca pe un
> > > pointer), nu?
> > > int *p = (int*)malloc(100*sizeof(int));
> > > nr_elem = (sizeof p / sizeof *p); // imparti marimea totala la
> >   Adica 1?
> > sizeof (p) nu e sizeof(int *)?
> > sizeof *p nu e sizeof (int)?
> > cel mai des sizeof (int *) == sizeof(int)
>   ^^^^^^^^^^^^
> 
> cel mai des asta inseamna numai 32bit, ori sunt destule arhitecturi 64bit
> si omul preciza pe undeva cuvantul "portabil" (whatever that means) :)
> 


Mihai, nu ai inteles ce vrea omu' sa spuna! sizeof p nu va spune
niciodata nimic despre zona alocata la adresa p; ci despre tipul lui p,
in cazul de fata pointer; de aceea, a imparti sizeof(void*) la
sizeof(int) nu va da nici un rezultat interesant pentru problema de
fata; ca acest rezultat, neinteresant, mai este si portabil pe deasupra,
nu ne incalzeste cu nimic :)

nu prea inteleg cum foloseste Alex "formula" asta "magica" pentru a
determina memoria alocata de malloc;

deci: Alex, sizeof(orice_pointer)==sizeof(void*);

georgeb

-- 
George Barbarosie <[EMAIL PROTECTED]>
intelinet.ro SRL

---
Pentru dezabonare, trimiteti mail la 
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui