ilość elementów w tablicy

0

hi, próbowałem już na wiele sposobów i nie wiem czy w ogóle da się to zrobic bez pomocniczej zmiennej,
Jak pobrać ilość elementów tablicy dynamicznej
np; int *pTab;
to bedzie wskaznik do pierwszego elementu, i tylko jego posiadam
Aha, tego też raczej sie nie da obliczyć przy pomocy funkcji do while, bo normalnie szukałbym póżniej pustego pola pamięci, ale przecież różne wartości mogą mi się rkryć pod adresem pTab++ więc myślę że pętla odpada.
Bawiłem się z sizeof, ale nie ono albo podaje ilość pamięci zajmowanej przez adres albo ilosc zajmowanej przez wartość.
Intuicyjnie dałem sizeof [] pTab; ale to lipa;.
da się to zrobic ? bez zmiennej pomocniczej?

A chyba już sobie odpowiedziałem na to pytanie, jeśli ja nie wiem która wartość jest wartością ostatnią w mojej tablicy to skąd ma to wiedzieć komp. Musze mieć jakiś licznik (pomoc. zmienną)

jeślk się myle to proszę o poprawienie

0

Jak jednak uzyskać informację na temat wielkości takiej tablicy?
Umożliwia to sztuczka działająca w sposób niezależny od zmian wielkości tablicy, czyli zastosowanie wyrażenia [code]sizeof c / size of *c[/code] ( wielkość całej tablicy, podzielona przez wielkość jej pierwszego elementu).

Cyctat z książki "Thinking in C++" Bruca Eckela. W ten sposób poznasz ilość elementów tablicy.

0

Kurde , działa , ale przyznam , że nie wiedziałem że da sie tak . Ale ten przykład działa tylko dla tablic statycznych :
int tab[10];
itp
a tu chodzi o tablice dynamiczne ...
Wg mnie zmienna pomocnicza jest NIEZBĘDNA .

0

sizeof c / size of *c
tak też robiłem, ale jesli to jest dyn, to
sizeof c
poda wartosc pameici zajmowanej przez wskaznik (czyli 4)
natomiast
sizeof *c to ilosc pamieci jednego elementu tablicy, tu tez sie nie podzieli
mi chodzi o dynamiczna pamięć, też już wiem że bez pomocniczej się nie da, biorąc pod uwagę właściwości wskaźników
mógłbym też dawać jako ostatnią wartość w tablicy jakąs specyficzną wartość, ale z tego by się te ż mogło polać jak z sita

0

sizeof c / size of *c

mógłbym też dawać jako ostatnią wartość w tablicy jakąs specyficzną wartość, ale z tego by się te ż mogło polać jak z sita

to wsadz ten rozmiar do pierwszego elementu tablicy

[hurra]

0

to wsadz ten rozmiar do pierwszego elementu tablicy

Ale wtedy ten pierwszy element ( w rzeczywistości zerowy ) będzie tą zmienną pomocniczą lol ;)
nie da sie bez dodatkowej zmiennej i już

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