Rozmiar tablicy w funkcji

0

Witam,

chciłabym poznać wymiar tablicy przekazanej do funkcji. To będzie tablica int, związku z czym "/0" odpada i for. Chciałbym wykorzystać również wskaźnik. A o to i fragment kodu.

 void wypisz(int* a){

   cout << sizeof(a)/sizeof(int);
}

int main() {

    int tab[2] = {23,3};
   wypisz(tab);
}

Wiem, oczywiscie dlaczego dostaje taki wynik. Przykład przedstawiam w celu lepszego zrozumienia problemu.

pozdrawiam

0

przecież funkcja tu już widzi tylko wskaźnik (bo tak ma w deklaracji, przecież int* to mnie tablica :P), dlatego sizeof zwróci zawsze te 4 bajty
przekazuj wielkość tej tablicy przez następny parametr

0

Wskaźnik nie jest tablicą. Jeśli w funkcji masz T* to już sobie rozmiaru nie sprawdzisz. Przekazuj go jako drugi argument.

0

Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1