struct und zeiger
-
Folgende Aufgabe:
Schreibe eine Struktur, welche: Name des Leiters, Name der Verkäuferin, Name vom AZUBI, Anzahl der Verkauften Teile pro Monat, Umsatz pro Monat und Lagerbestand beinhaltet.
Benutze statt char vektoren Zeiger!
Jetzt hab ich das erstmal mit normalen char-Vektoren gemacht:
struct Lagerbestand { char Leiter[30],Verkauferin[30],Azubi[30]; float Umsatz; int Teile,Bestand; }; int main() { Lagerbestand xyz; cout << "Leiter: "; cin >> xyz.Leiter; cin.sync; ... return 0; }
funzt soweit ganz gut nur habe ich mit Zeigern so meine Probs:
struct Lagerbestand { char *Leiter,*Verkauferin,*Azubi; float Umsatz; int Teile,Bestand; }; int main() { Lagerbestand xyz; cout << "Leiter: "; cin >> xyz.Leiter; cin.sync; ... return 0; }
bekomme nur Fehlermeldungen, was mach ich falsch, bzw was muss ich mit den Zeigern machen, damit ich die einlesen kann?
-
keine-ahnung schrieb:
char-Vektoren
zu deinem char* Problem, du solltest Speicherallokieren bevor du ihn beschreibst..
also mit new[länge] erstmal das teil anlegen.Da das aber mit cin bisschen schwierig is (ich weiss zumd. jetz nich wie ichs machen sollte
), benutz halt gleich std::strings,
is angenehmer.
-
char-vekotoren = char-arrays
Nur wenn in der Aufgabenstellung steht das man Zeiger benutzen soll, kann ich wohl kaum sagen ich benutz jetzt strings, muss mich da leider an die Aufgabenstellung halten. Leider hab ihc da sauhc shcon mit new versucht und da hab ich auch das Problem mit den endlosen Compilier fehlern bekommen.
-
Hallo,
ein Minimalbeispiel sähe so aus:#include <iostream> using namespace std; struct Lagerbestand { char *Leiter,*Verkauferin,*Azubi; float Umsatz; int Teile,Bestand; }; int main() { Lagerbestand xyz; // Speicher anfordern... xyz.Leiter = new char[30]; cout << "Leiter: "; // einlesen... cin >> xyz.Leiter; // ...und wieder freigeben. delete [] xyz.Leiter; return 0; }
Btw: Viel ineffizienter kann man C++ kaum mehr verwenden.
-
najo ich wieß, aber wenn der Lehrer sone Aufgabenstellung gibt
-
keine-ahnung schrieb:
char-vekotoren = char-arrays
jo, das weiss ich, nur der Begriff an sich is eigenartig
keine-ahnung schrieb:
Nur wenn in der Aufgabenstellung steht das man Zeiger benutzen soll, kann ich wohl kaum sagen ich benutz jetzt strings, muss mich da leider an die Aufgabenstellung halten. Leider hab ihc da sauhc shcon mit new versucht und da hab ich auch das Problem mit den endlosen Compilier fehlern bekommen.
Ups, sry, die erste Zeile in deinem Post is mir völlig entgangen,
ich habs nur überflogen und das "nötigste" (wie sich herausgestellt ja doch nicht ^^) gelesenbtw.
da meine aussage mit "mit cin etwas schwierig" von vorhin etwas dümmlich klingt:
ich hätts so versucht zu machen, die exakte Länge zu allokieren (daher das schwer -_-)
-
Vektor ist ein anderer Begriff für Array, der allerdings wenig geläufig in C++ ist.
Andere Sprachen nutzen den Begriff lieber.MfG MAV
-
In der deutschen Ausgabe von Kernighan&Ritchie beispielsweise steht immer Vektor statt Array. Ich vermute mal, dass das durch die Übersetzung kam, bin mir aber nicht ganz sicher. Ich weiss nicht, an was für Programmiersprachen du jetzt so gedacht hast, die (eindimensionale) Arrays Vektoren nennen, mir fallen da jedenfalls nur Scheme und Lisp ein.