Zahl der Elemente eines Arrays bestimmen
-
m.g. schrieb:
Ich wollte ja eigentlich keinen Vektor verwenden.
Hattest du einen bestimmten Grund? Bei mir ist es genau umgekehrt: Es braucht eine besondere Rechtfertigung, damit ich mit rohen Arrays oder besitzenden Zeigern hantiere und auf moderne Mittel wie
std::vector
verzichte.
-
Weil das ganze Teil einer DLL wird und unter anderem von einem Programm in Smalltalk angesprochen wird. Und das klappt wohl nur, bzw. am einfachsten, mit Pointern auf Char Arrys.
-
vector<T> für T!=bool garantiert ein lineares Speicherlayout
vector<int> foo (99); int* ptr = &foo[0]; ptr[3] = 23; cout << foo[3] << '\n';
-
Hi,.
Du musst dir die allocierte größe in bytes durch typengröße speichern. Dann hast Du auch die anzahl der Elemente.
grüüße
-
zeusosc schrieb:
Du musst dir die allocierte größe in bytes durch typengröße speichern. Dann hast Du auch die anzahl der Elemente.
Du meinst wohl divideren?
-
Jo,..
deswegen auch das wort "durch"...
-
Und wie soll das bitte mit Pointern funktionieren?
-
#define MAX_SIZE 1024 size_t index=0; size_t size_in_bytes = MAX_SIZE*sizeof(double); double* ptr=(double*)malloc(size_in_bytes); //der compiler convertiert automatisch den index als vielfaches der typengröße index=511; double Wert_An_stelle_512 = *(ptr+index);
gruß
-
zeusosc, ich denke eher, m.g. meinte, wie du bei einem Zeiger auf ein dynamisches Array die Anzahl Elemente bestimmen kannst. Dafür gibt es nämlich keine portable Möglichkeit.
-
Hi,.
ja ist richtig,.. ich dachte es bezog sich auf die äußerung die größe einfach zu sichern,..
grüße