Array im Struct fehler bei system("cls")
-
also wenn ich char aus[22] und txt ausgabe[40] setze gehts bis i=31. Wenn ich char aus[100] und ausgabe[10] setze gehts bis i=7...
-
//in der main
struct daten odaten; int i=0; //daten=(struct daten *) malloc (sizeof(daten)); odaten.logedin=NULL; odaten.user_anf=NULL; odaten.user_end=NULL; odaten.zimmer_anf=NULL; odaten.zimmer_end=NULL; //hab hier mal was sinfreies eingebaut um den fehler zu lokalisieren for (i;i<100;i++) { strcpy(odaten.ausgabe[i].aus,"bla"); system("cls"); //<-Fehler }
was passiert wenn du e so machst?
-
soen mist .. danke hab den fehler gefunden.. der wurde mir auch angezeigt als ich das mal in odaten umbenannt hab...
so muss es sein:
daten=(struct daten *) malloc (sizeof(struct daten));
hatte bei sizeof(struct daten) das struct vergessen und da ich ja auch en zeiger daten hatte hat der keinen fehler angezeigt... bää hab da stunden davorgesessen...
aber jetzt alles fein
DANKE.
-
Und malloc casten solltest du auch nur wenn usw.
-
struct daten *daten;
das hab ich mir gedacht, wieso nennst du den zeiger auf daten gleich wie der typ?? mach lieber
struct daten *pDaten;
P.S: free() nich vergessen.....
-
bgdnoy schrieb:
Und malloc casten solltest du auch nur wenn usw.
wenn? wenn was?
normalerweise nicht, höchstens vielleicht wenn man den rückgabewert einem 'long' zuweisen will oder sowas seltsames.
-
In meinem struct sind ja mehrere verkettete listen drinnen.. muss ich erst alle listenelemente einzeln freen oder werden alle sofort gefreet wenn ich free(daten) mache??
-
in der struktur wie du elemente etc. mit malloc anlegst musst du sie rückwierkend auch so wieder frei geben
-
aha. DANKE
-
freak schrieb:
bgdnoy schrieb:
Und malloc casten solltest du auch nur wenn usw.
wenn? wenn was?
Wenn man befürchet, daß jemand das Programm durch einen C++Compiler jagen wird. Wenn man das konsequent betriebe, könnte jemand kommen und sagen:
#define void (char)