structs... bei -> Operator Fehlermeldung!
-
Hallo zusammen
Ich bekomme eine Fehlermeldung (error C2819: Der Typ 'main::zeileDIN1449' hat keinen überladenen Elementoperator '->' wenn ich auf d zugreifen will(Zeile 57)
weshalb?#include<stdio.h> void main() { /*Definition der verwendeten Variablen mit Datentyp*/ int i, d; int z=0; /*Deklaration des structs zeile DIN1449*/ typedef struct { int d; int l; char toleranz[4]; double r; } zeileDIN1449; /*Definition und Initialisierung der tabelle DIN748*/ zeileDIN1449 tabelleDIN1449[9] ={ {20, 36, "m6", 3.4}, {25, 42, "m8", 4.1}, {30, 58,"m10", 4.5}, {40, 82,"m12", 7.1}, {50, 82,"m16", 7.1}, {60,105,"m20", 8.6}, {70,105,"m24", 9.6}, {80,130,"m30",10.8}, {90,130,"m30",12.3}, }; printf("**********************************************\n"); printf("* Suche in DIN1449 *\n"); printf("**********************************************\n\n"); do { printf("Bitte geben Sie einen Durchmesser zwischen 20 und 90 ein!\n\n"); printf("Bitte Durchmesser eingeben: "); scanf("%i",&d); } while(d < 20 || d > 90); if (d==90) z=8; for(i=0; i<8; i++) { if(tabelleDIN1449 [i]->d <= d && d < tabelleDIN1449[i+1]->d) //HIER-FEHLER { z=i; break; /* Eintrag gefunden, beenden der Schleife*/ } } printf("\nDie Daten fuer das Wellenende mit dem Durchmesser d=%i:\n",d); printf("Laenge l = %i \nToleranzfeld = %s \nRadius r = %f\n\n", tabelleDIN1449[z].l,tabelleDIN1449[z].toleranz,tabelleDIN1449[z].r); }
Gruß GRASS
-
tabelleDIN1449 [i]
ist ja auch kein Zeiger, sondern ein "normales" struct. Da mußt du den . verwenden, um auf die Elemente zuzugreifen.
-
Grass schrieb:
Hallo zusammen
Ich bekomme eine Fehlermeldung (error C2819: Der Typ 'main::zeileDIN1449' hat keinen überladenen Elementoperator '->' wenn ich auf d zugreifen will(Zeile 57)
weshalb?Weil Du im falschen Forum unterwegs bist.
C++ != C
-
CStoll schrieb:
tabelleDIN1449 [i]
ist ja auch kein Zeiger, sondern ein "normales" struct. Da mußt du den . verwenden, um auf die Elemente zuzugreifen.Danke! wusste ich nicht! dachte -> geht immer!
-
Grass schrieb:
Danke! wusste ich nicht! dachte -> geht immer!
Nein, den Unterschied zwischen Punkt und Pfeil mußt du schon erkennen
("var.el" ist der Zugriff auf Struktur-Elemente, "(*ptr).el" bzw. "ptr->el" wird beim Zugriff über Zeiger)