On Tuesday 26 August 2003 10:39, Serghei Amelian wrote:
> Hmm, de ce conteaza? Din cate stiu eu "return buffer" este sinonim cu
> "return &buffer[0]", asa ca unde e problema? Poti sa-mi dai un exemplu unde
> ar avea importanta chestia asta?
  Diferenta este locul unde se aloca memoria. char buffer[512] o sa il ai 
alocat pe stiva, sau static (daca e in afara contextului vreunei functii.
  Daca ai intr-o functie:
const char *func(void)
{
char buffer[1023];
return buffer;
}

  Asta e un dezastru waiting to happen. (dar stiai asta, nu?)
  Cand trimiti ca parametru la o functie care primeste un char * ca parametru 
atunci se face cast-ul automat, daca primeste un char[] ca parametru se 
copiaza pe stiva (cred).
  Daca functia in schimb returneaza un char[] atunci la retur se va face 
copierea intregului string (1023 de caractere).
  At least, that's the way I see it.
  Dorin.


--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui