You are not logged in.

  • Login

1

Friday, November 24th 2006, 6:40pm

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.

C Quellcode

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

2

Friday, November 24th 2006, 9:46pm

Re: Dynamisches array bzw. Pointer

C Quellcode

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


Gruß void

3

Tuesday, November 28th 2006, 3:16am

hm, danke für den Tip, bloß leider funzt es trotzdem noch nicht so ganz -.-

4

Tuesday, November 28th 2006, 5:30am

Moin,
entweder:

C Quellcode

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

oder

C Quellcode

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

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

Similar threads

Social bookmarks