C Tutorials ****

Okay, ist irgendwie logisch :)

Also eigentlich, passiert kein richtiger Fehler. Ich kann das Programm ausführen, aber wenn ich das Array mit Werten initialisiere und dann auslesen lasse, werden ganz andere Werte angezeigt als eingegeben.
 
Klingt eindeutig nach einer falschen Nutzung von Zeigern.
Ich glaube hier liegt der Fehler:
C++:
int *CreateAndWriteIntArray(int g) {
    int array[g];
    int zahl;
    
    int i;
    for(i = 0; i < g; i++) {
          printf("Bitte Wert %d eingeben: ", i);
          scanf("%d\n",&array[i]);
          
          }
          return array;
}
Das Array array wird am Ende der Funktion doch automatisch gelöscht.
Versuch mal folgendes:
C++:
int *CreateAndWriteIntArray(int g) {
    int *array = new int[g];
    int zahl;
    
    int i;
    for(i = 0; i < g; i++) {
          printf("Bitte Wert %d eingeben: ", i);
          scanf("%d\n",&array[i]);
          
          }
          return array;
}
 
  • Gefällt mir
Reaktionen: yax
Ändere mal die Funktion ReadIntArray so ab:
C++:
void ReadIntArray(int g, int *array) {
     int i, *pval2;
     pval2 = array;
     for(i = 0; i < g; i++) {
           printf("Array : %d\n", pval2[i]);
           }
}
Ich habe den Zugriff auf die Variable pval2 geändert.
 
  • Gefällt mir
Reaktionen: yax
Okay, danke. Endlich geschafft. :)

Hatt denn jemand noch eine Idee, was ich mit Zeigern üben könnte, da ich ja den Umgang mit ihnen üben will**** Also ich möchte eigentlich keinen Code, sondern nur so Ideen. :)

Gruß yax.
 
Wir wäre es mit (doppelt) verketteten Listen oder versuche doch mal solche Arrays dynamisch zu erweitern.
Es gibt natürlich noch viel mehr.

Und viel Spaß!
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: yax
Zurück