Dynamisches array bzw. Pointer

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dynamisches array bzw. Pointer

    Hallo erstmal,

    ich hab hier ein kleines Problem mit meinem Code. Ich sollte ein Programm schreiben, dass den Mittelwert von Zahlen errechnet. Die Anzahl der Zahlen sollen per Konsoleneingabe vom Benutzter definiert werden. Ich finde jetzt einfach nicht heraus, warum es net läuft. Habt Ihr eine Idee? Vielen Dank schon mal im voraus.

    Quellcode

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <string.h>
    4. int main(int argc, char* argv[]){
    5. int *FeldEins;
    6. int anz, i=0, tmp=0, tmp2=0;
    7. printf("Wie viele Werte benötigen Sie : ");
    8. scanf("%d", &anz);
    9. FeldEins = (int *)malloc(anz*sizeof(int));
    10. if(NULL == FeldEins) {
    11. printf("Fehler bei malloc...!!\n");
    12. return EXIT_FAILURE;
    13. }
    14. while(i < anz) {
    15. printf("Wert fuer die Errechnung des Mittelwerts eingeben : ",i);
    16. scanf("%d",(FeldEins+i));
    17. i++;
    18. }
    19. while(i<anz) {
    20. tmp = tmp+(FeldEins+i);
    21. i++;
    22. }
    23. tmp2 = (tmp/anz);
    24. printf("Der Mittelwert ist: %d",tmp2 );
    25. free(*FeldEins);
    26. }
    Alles anzeigen
  • Re: Dynamisches array bzw. Pointer

    Quellcode

    1. .... while(i < anz) {
    2. printf("Wert fuer die Errechnung des Mittelwerts eingeben : ",i);
    3. scanf("%d",(FeldEins+i));
    4. i++;
    5. }
    6. i=0; //i wieder auf 0 setzen
    7. while(i<anz) {
    8. .....
    9. free(FeldEins); // FeldEins nicht dereferenzieren
    10. }
    Alles anzeigen


    Gruß void
    "Probleme kann man niemals mit derselben Denkweise lösen,
    durch die sie entstanden sind." (A. Einstein)
  • Moin,
    entweder:

    Quellcode

    1. while(i<anz) {
    2. tmp = tmp+ FeldEins[i];
    3. i++;
    4. }

    oder

    Quellcode

    1. while(i<anz) {
    2. tmp = tmp+ *(FeldEins+i);
    3. i++;
    4. }

    Du addierst sonst die Speicheradressen und nicht deren Inhalt.
    Und für die Zukunft möchte ich dich noch bitten deine Probleme etwas genauer als "funzt nich" zu umschreiben und etwaige Fehlermeldungen des Compilers zu posten.
    Mit aussagekräftigen Beschreibungen des Fehlverhaltens ist eine deutlich produktivere Fehlersuche möglich :wink: .

    Gruß void
    "Probleme kann man niemals mit derselben Denkweise lösen,
    durch die sie entstanden sind." (A. Einstein)