Nytro Posted March 20, 2013 Report Posted March 20, 2013 Aveti de facut in C++ o functie care primeste niste date de intrare, nu conteaza ce, iar ca rezultat va avea un buffer (care contine cine stie ce date, nu e important) de dimensiune necunoscuta la apelul functiei. Cum ar arata pentru voi cel mai bine prototipul pentru acea functie:1. Functia intoarce bool daca s-a efectuat cu succes si scrie datele la o adresa PREalocata, inainte de apelul functiei:bool Functie(int DateIntrare, char *Buffer, int &DimensiuneAlocata);Parametrul "DimensiuneAlocata" va fi transmis prin referinta si dupa apelul functiei va contine numarul de bytes folositi de functie. Problema e ca functia poate necesita mai multi octeti decat sunt prealocati, astfel datele vor fi trunchiate.2. Functie care intoarce un pointer la datele ALOCATE DE FUNCTIE (deci vor trebui ulterior eliberate de utilizator) si un parametru transmis prin referinta care va contine dimensiunea datelor alocate:char *Functie(int DateIntrare, int &DimensiuneAlocata);3. Functia va intoarce numarul de octeti alocati si va primi ca parametru o referinta la pointerul pe care il va aloca intern, urmand ca datele sa fie eliberate de utilizator.int Functie(int DateIntrare, char *& Buffer);Bine, sunt MULT mai multe variante. Voi pe care o preferati si de ce?Sper ca ati inteles la ce ma refer... Quote
nedo Posted March 20, 2013 Report Posted March 20, 2013 Eu asi alege a 2-a versiune.Verificarea o faci dupa dimensiunea alocata. E mai putin overhead cu trimiterea parametrilor. Quote