Thread Länge eines arrays: länge in Bytes oder Anzahl der Elemente (12 answers)
Opened by format_c at 2005-03-13 21:03

esskar
 2005-03-14 15:50
#11107 #11107
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
das liegt daran, dass du an der stelle in print_array ein sizeof auf einen Pointer machst; und ein Pointer auf einer 32-Bit Maschine ist immer 4 Bytes groß (egal wie der typ ist).
Du müsstest wenn schon die größe mitgeben; also in diesem fall
Code: (dl )
1
2
void print_array (int *a, int laenge) {
}


und pass auf, wenn du lokale deklarationen machst
Code: (dl )
int a[2] = {1,2};

ist zwar solange okay bis du das array vergrößern willst; lokale deklarationen kannst du in ihrer größe nicht ändern; du müsstest dann schon mit malloc, realloc und free arbeiten (oder wenn du richtig c++ schreiben willst mit new und delete, wobei du dir dann das realloc für new/delete selber schreiben musst). Wenn du wissen willst, wie das alles passiert in c/c++, kann ich dir selber schreiben nur empfehlen; ansonsten benutz so sachen wie die STL; damit kann man auch schnell und effizient programmieren!

View full thread Länge eines arrays: länge in Bytes oder Anzahl der Elemente