Pointer < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Aufgabe | Typische Fehler in Zusammenhang mit der Benutzung von Pointern und Feldern sind:
(1) Pointer ist nicht initialisiert (zeigt irgendwohin).
(2) Pointer zeigt auf nicht initialisierte Variable.
(3) Wertzuweisung an Pointer mit inkompatiblem Datentyp.
(4) Versuch, einer Feldvariablen eine neue Adresse zuzuweisen.
Bei verschachtelten Kombinationen von Pointern und Feldern können diese Fehler auf verschiedenen
Ebenen der Verschachtelung auftreten.
In jedes der folgenden Programme hat sich jeweils einer der obigen Fehler eingeschlichen. Finden
und benennen Sie diesen. Lösen Sie die Aufgabe durch Nachdenken und nicht durch raten! Lösen Sie die Aufgabe auf dem Papier und
nicht durch Schreiben eines Programms, da ihr Compiler sich nicht unbedingt an den Standard hält.
Nach dieser Aufgabe sollte für sie ganz klar sein, was genau ein Pointer und was ein Feld ist und wie
man sie, auch verschachtelt, benutzen kann.
e) ** (Pointer auf Feld)
1: | int main() {
| 2: | int (*p)[2],v[2];
| 3: | p = &v;
| 4: | printf(%i,**p );
| 5: | }
|
1: | int main() {
| 2: | char (*p)[2],v[]={65,66};
| 3: | p = v;
| 4: | printf(%c,**p );
| 5: | }
|
1: | int main() {
| 2: | char (*p)[2],v[]={65,66};
| 3: | *p = v;
| 4: | printf(%c,**p );
| 5: | }
|
1: | int main() {
| 2: | int (*p)[2],*q[2],v[]={1,2};
| 3: | p = &v;
| 4: | q = p;
| 5: | printf(%i,**q );}
|
1: | int main() {
| 2: | int (*p)[2],*q[2],v[]={1,2};
| 3: | q[0] = v;
| 4: | p = q;
| 5: | printf(%c,**p );}
|
f) ** (Feld von Feldern)
1: | int main() {
| 2: | int a[2][3],v[]={1,2,3};
| 3: | a[0] = v;
| 4: | printf(%i,a[0][0] );
| 5: | }
|
1: | int main() {
| 2: | int a[2][3], (*p)[3];
| 3: | p = a;
| 4: | printf(%i,**p );
| 5: | }
|
1: | int main() {
| 2: | int a[][3]={{1,2,3},{4,5,6}},*p[3];
| 3: | p = a;
| 4: | printf(%i,**p );
| 5: | }
|
1: | int main() {
| 2: | int a[][3]={{1,2,3},{4,5,6}},**p;
| 3: | p = a;
| 4: | printf(%i,**p );
| 5: | }
|
|
Hallo zusammen,
ich hab bei dieser Aufgabe meine Probleme die richitigen Problem zuzuordnen.
Meine Lösung zu dieser Aufgabe wäre folgende:
e) 2 3 1 3 3
f) 4 ? 3 3
Wäre schÖn wenn zu meiner Lösung einer seine Meinung sagen könnte.
Hab ich alles richtig oder nicht?? Wenn es falch wäre, was wäre dann die Lösung??
Schonmal danke im Vorraus.
Gruß
Tobias
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:20 Di 13.01.2009 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|