Feldlänge ausgeben lassen

yidaki

Erfahrenes Mitglied
Hallo zusammen,

ich hab gerade angefangen mit c++. vorher hab ich mich einige zeit mit java beschäftigt. jetzt hab ich das problem, dass ich in einer forschleife einen int array feld nach seiner länge durchlaufen will.

int[] test={1,2,,3,4,5};

for (int i = 0; i < test.length() i++){}

Ich weiß nicht ob es etwas vergleichbares in c gibt, aber das würde mir auf jeden fall sehr weiterhelfen, denn ich glaub die length methode hab ich in java sehr häufig benutzt....

gruß

yid
 
So etwas gibt es in C leider nicht. Du musst die Länge immer mit dem array mit ziehen.

Legst du ein Array an mit:
int array[] = {1,2,3,4,5,6,7/*, ...*/ };
Kannst du die Länge mit sizeof(array)/sizeof(int)

Hast du nur ein Zeiger auf das Array so geht das nimmer.
 
Nachtrag:
in C++ geht das nicht da C++ auf C aufsetzt und deshabl nicht rein OO ist wie java
=> Ein Feld wird nicht als Objekt sondern nur als hintereinanderhängender
Speicher betrachtet der keinerlei Informationen mitträgt.

Du hast weitere zwei Möglichkeiten:
1.) Das definieren einer globalen Variable:
Code:
const int MAX_EINTRAEGE=5; 

int main(){

        int test[MAX_EINTRAEGE]={1,2,3,4,5};
        for (int i = 0; i < MAX_EINTRAEGE; i++){}

}
oder
2.) Gleich OO programmieren und den std::vector dahernehmen...
der trägt diese Information nämlich implizit mit.
Siehe dazu auch:
http://www.sgi.com/tech/stl/Vector.html

Gruß

RedWing
 
Zuletzt bearbeitet:
Vielen dank für eure schnelle Antwort, das hat mir
gleich schonmal etwas weitergeholfen.

bis bald ;-)

yid
 
Zurück