Forum: Compiler & IDEs Länge der Tabelle berechnen


von Ingo L. (grobian)


Lesenswert?

Ich will die Anzahl der Elemente in einer Tabelle verarbeiten. Bekomme 
mit dem Programm jetzt nur die Anzahl der belegten Bytes ausgegeben.
Wie kann ich die Länge dynamisch bestimmen ?

#include <iostream>
using namespace std;

int Tabelle[] = {1,2,3,4 };
int Elemente = sizeof( Tabelle );


int main ()

{
cout << Elemente;

    system("PAUSE");
    return EXIT_SUCCESS;
}

Gruß aus Berlin
Ingo

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Ingo Laabs schrieb:
> Ich will die Anzahl der Elemente in einer Tabelle verarbeiten. Bekomme
> mit dem Programm jetzt nur die Anzahl der belegten Bytes ausgegeben.
> Wie kann ich die Länge dynamisch bestimmen ?
1
int Tabelle[] = { ...  };
2
int Elemente = sizeof (Tabelle) / sizeof (Tabelle[0]);

Das ist allerdings keine dynamische Bestimmung zur Laufzeit. Diese musst 
du selber implementieren, die kann kein Compiler für dich machen weil 
nur du weißt, was deine Daten bedeuten.

Johann

von Ingo L. (grobian)


Lesenswert?

woran erkennt jetzt die Funktion das "sizeof (Tabelle[0])" 4 ist?

von bartsch (Gast)


Lesenswert?

Oder (auch nicht dynamisch):
1
...
2
int Elemente = sizeof( Tabelle ) / sizeof( int );
3
...

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Ingo Laabs schrieb:
> woran erkennt jetzt die Funktion das "sizeof (Tabelle[0])" 4 ist?

Das erkennt nicht die Funktion, das weiß der Compiler. Du könntest 
ebensogut auch "sizeof(int)" schreiben.

Johann

von Ingo L. (grobian)


Lesenswert?

guter compiler..
danke euch

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.