W jaki sposób mogę odnieść się do ostatniej wartości w tablicy. Chodzi mi o coś takiego jak w javie czyli: tab.length-1 Istnieje coś takiego?
0
0
int size = 5;
int tab[] = new int[size];
int ostatni = tab[size-1];
delete[] tab;
Jesli czegos nie schrzanilem, to powinno dzialac ;)
Generanie w C++ nie ma informacji o wielkosci tablicy zapisanej w tejze tablicy.
0
Schrzaniłeś, new
zwraca wskaźnik.
Ale do rzeczy: wielkość (w bajtach, nie ilość elementów) tablicy zadeklarowanej na stosie zwróci ci operator sizeof
. Zrobi to z racji tego, że ilość elementów tablicy zadeklarowanej na stosie musi być znana na etapie kompilacji i ten sizeof
zostanie zamieniony właśnie na tę liczbę.
int tablica[] = { 1, 5, 2, 7, 2 };
int rozmiar = sizeof tablica / sizeof tablica[0];
int ostatni = tablica[rozmiar - 1];
Ilości elementów w tablicy zadeklarowanej na stercie (ew. mając wskaźnik na pierwszy element) nie da się pobrać. Nazwą, którą się posługujesz, to tylko wskaźnik na pierwszy element. Wielkość musisz przekazywać sam albo sprawdzać ją w inny sposób (przykładowo, napisy w C kończą się znakiem o kodzie 0).