ďťż

Ładny brzuch

Pytanie w zasadzie postawiłem już w temacie. Chciałbym je nieco jednak sprecyzować. Mam funkcję w C++ która pobiera jako argument tablicę, wykonuje jakieś operacje na tej tablicy i chciałbym aby wynik został zwrócony w formie tablicy bądź wskaźnika do tej tablicy. Pytanie: Jak to zrobić? Z góry dziękuję za odpowiedzi:)



Tak, może.
W C++ tablice funkcjonują tak na prawdę za pomocą wskaźników; zapis tablica[i] jest równoznaczny z *(tablica+i) jako, że nazwa tablicy jest wskaźnikiem na jej pierwszy element.

Stąd funkcja:
typ_danych_w_tablicy* funkcja();
może przekazać tablicę przez ten wskaźnik.

Niemniej jednak rozmiar takiej tablicy musisz dostarczyć sobie inną drogą; tzn. bo po samym wskaźniku (jak i z resztą po samej nazwie i typie tablicy) nie można stwierdzić ile w niej jest elementów. Rozmiar możesz przesyłać na przykład do funkcji przez referencję i funkcja go nadpisze :).

Pozdrawiam,
TeMPOraL.

mozna tez:

-void f(typ *tablica_przekazana,typ *tablica_zwracana)
{
//--
}

Ten sposób jest niebezpieczny i sprawdza się tylko w wypadku stringów, kiedy tablica kończy się znakiem '\0' (a i tak może się okazać, że tablica docelowa będzie krótsza i coś sobie zniszczymy). Potrzebna jest jeszcze informacja o długości tablicy (tej krótszej), np.:
void f(typ *tablica_przekazana,typ *tablica_zwracana, int rozmiar_tabic) { //-- }
Użytkownik lampak edytował ten post 08 październik 2006, 09:11
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •