Probleme mit Pointer und Array
-
Hallo,
ich hoffe jemand in diesem Forum kann mir bei meinem Problem helfen. Folgende Funktion zeichnet Linien für eine Tabelle auf den Bildschirm, die an manchen Stellen durch Pluszeichen unterbrochen wird:
void drawline (int length, int *cross) { //drawline_stuff } void main(void) { int cross[] = {1,17,25,41,57,73}; drawline(linelength, cross); }
Wie kann ich in meiner Funktion drawline die Anzahl der Einträge in cross prüfen? Mit sizeof(cross)/sizeof(int) bekomme ich nur die Größe des Zeigers durch 4 zurück.
-
int i=0; for(;*cross;cross++) i++;
mfg peter
-
Entweder muss der DrawLine-Funktion die Größe mitgegeben werden, oder du einigst dich darauf, dass das cross-Feld mit einer 0 oder -1 oder so abgeschlossen wird. Dann könntest du so eine Zähl-Schleife machen wie Peter meinte.
-
Danke für eure Tipps, habe der Funktion jetzt die Größe des Array mitgegeben.
-
Würde "sizeof(cross)/sizeof(int)" nicht auch helfen um die Größe zu ermitteln
-
Nein, da der Funktion nur der Pointer auf den Array übergeben wird und in der Funktion selber somit die Anzahl der Einträge im Array nicht mehr ermittelt werden kann. Aber das erwähnte ich ja bereits in meinem ersten Posting.
-
Ach Mist, hab ich übersehen... Sorry