Zugriff auf Variable < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:01 Mo 21.05.2012 | Autor: | Bluma89 |
Aufgabe | Sie möchten ein Array verwenden, doch Sie müssen für seine Verwendung die Größe ermitteln.
Erzeugen Sie in einem Programm das folgende Array:
int wildeDreizehn[] = {1,2,3,4,5,6,7,8,9,10,11,12,13}
Ermitteln Sie anschließend die Größe des Arrays per Code so, dass für die Verwendung eines Arrays anderer Größe keine weiteren Veränderungen im Code nötig sind, als den einfachen Tausch des Arrays bzw. seines Namens. Das Programm soll die Größe des Arrays dennoch korrekt ermitteln.
Testen Sie dies, indem Sie das Array durch das folgende Array austauschen:
int siebenZwerge[] = {1,2,3,4,5,6,7} |
Hallo*,
siehe o.g. Aufgabenstellung. Meine Frage ist es wie es realisierbar ist, dass obwohl der Name des Arrays geändert wird, man auf dieses zugreifen kann. Meine Idee wäre gewesen dies über einen Pointer zu realisieren (int *punkt = &iVar;). Jedoch wäre es auch hier notwendig den Namen des Arrays ein weiteres Mal zu editieren. Hat jemand andere Ideen. Wäre dankbar.
Viele Grüße
|
|
|
|
Hallo!
Um was für eine Sprache geht es denn? Kann ja nur Java sein, denn in C kannst du die Länge des Arrays nicht bestimmen.
Ansonsten kannst du vor dem Code zur Bestimmung der Größe einfach
wildeDreizehn=siebenZwerge;
schreiben. Denn siebenZwerge ist der Pointer auf das Array , enthält also die Adresse des ersten Elements. Und diese Adresse kannst du in den Pointer wildeDreizehn schreiben. Aber achtung: Dadurch verlierst du den Zugriff auf das ursprüngliche Array wildeDreizehn, weil du die Adresse nicht mehr kennst. Sowas nennt man Memoryleak, und kann bei wiederholtem Vorkommen den Speicherbedarf des Programms explodieren lassen.
Eine andere Möglichkeit wäre, eine Funktion zu schreiben, die ein Array übergeben bekommt, aber irgendwie erschließt sich mir dann der Sinn der Aufgabe nicht.
|
|
|
|