Problem dynamischer Speicherplatzverwaltung
-
So ich hoffe mir kann hier mal jemand helfen....
Problem ist folgendes: Ich soll ein Programm mit dynamischer Speicherplatzverwaltung schreiben. Ich weiß ja an sich auch wie das geht, nur leider is unsere Professorin zu faul mal irgendwelche Erklärungen rauszusuchen um einzelene sachen zu erklären, stattdessen schreibt sie einfach die Erklärungen aus der MSDN Library ab und die sind auf englisch und wenn man keine Ahnung hat hilft eim das auch nicht weiter.....
Also hier meine Frage ich soll dynamischen Speicherplatz anlegen, wie is mir ja auch klar nämlich:serie = (double *) malloc(k*sizeof (double));
und dann kommt die Überprüfung mit:
if (serie == NULL) { printf("Es konnte kein ausreichender Speicherplatz zugewiesen werden!"); exit( 1 ); }
da wird jetzt allerdings verlangt, Zitat aus der Aufgabenstellung:
Prüfen Sie bei der dynamischen Speicherplatzreservierung immer, ob diese erfolgreich war. Ist die Prüfung nicht erfolgreich, sollen bereits reservierte Bereiche freigegeben werden und das Programm mit einem erklärenden Meldungstext beendet werden.
Mir is da jetzt nich klar ob das im Prinzip das is, was da schon steht oder ob ich da noch irgendwas mit free() oder realloc() machen muss.
-
Wenn das deine erste Allokation im Programm ist, war's das. Wenn nicht, sollst du den bis dahin erfolgreich allokierten Speicher wieder freigeben und dich dann mit nem Text verabschieden.
MfG
GPC
-
Du solltest auf jeden Fall noch den Speicher, den du früher angefordert hast, mit free() wieder freigeben:
serie1=malloc(k*sizeof(double)); if(serie1==NULL) { printf("Fehler - Serie 1\n"); exit(1); } serie2=malloc(k*sizeof(double)); if(serie2==NULL= { printf("Fehler - Serie 2\n"); free(serie1); exit(1); }
-
danke dafür habs jetzt hinbekommen war auch so wie ihr sagtet. die aufgebaenstellung war halt nur etwas blöd formuliert