dynamisches struct?
-
Hey,
ich möchte eine Art dynamische Structur erstellen.
Nur bin ich mir nicht ma sicher ob das überhaupt möglich ist.
#include <iostream> #include <string> #include <windows.h> using namespace std; int mcount; struct MENSCH { const char* name; int alter; }; void add_MENSCH(const char* name, int alter, MENSCH* m) { m[mcount] = (MENSCH*)malloc(sizeof(struct MENSCH)); m[mcount].name = name; m[mcount].alter = alter; mcount++; } int main() { MENSCH *m; mcount = 0; int n = 0; string name; int alter = 0; cout << "Wieviele Personen sollen hinzugefügt werden?" << endl; cin >> n; for(int i = 0; i <= n; i++) { cout << "Name der " << i << ". Person:" << endl; cin >> name; cout << "Alter der " << i << ". Person:" << endl; cin >> alter; add_MENSCH(name.c_str(), 15, m); } return 0; }Binärer Operator '=': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'MENSCH *' akzeptiert (oder keine geeignete Konvertierung möglich)
Der Code soll ungefähr zeigen was ich versuche^^.
Wichtig wäre mir nur das man die Structur auch später noch erweitern kann(z.B. nach den n Einträgen später im Programm nochmal n Einträge hinzufügen). Ist das möglich? Wenn ja, wie funktioniert es richtig?
-
Wie wär's mit Grundlagen?
Du machst nämlich grundlegendes falsch...
-
struct MENSCH { const char* name; int alter; };Richtig: sind Grundlagen, die man kennen sollte. Die Struktur hat nur einen char-Zeiger auf den Namen, reserviert aber keinen Speicherplatz für den gesamten String. Ist aber mit dem gezeigten Ansatz ANSI-C. Strukturen sind ansonsten feste Deklarationen. Schreib einfach z.B. char name[24] für maximal 24 Zeichen. Eine Dynamisierung kann allein mit Klassen und C++ erreicht werden. Die Frage hat hier in WinApi nichts zu suchen!