Hi Leute ich hät mal wieder ein "kleines" Problem:
Ich arbeite gerade an einem Projekt für die Uni weshalb ich hier keinen Code posten will, da ich da möglicherweise Probleme mit einem Plagiatsvorwurf bekomme.
Ich habe als Aufgabestellung folgendes bekommen:
Ich soll eine .bmp Datei einlesen. In dieser Datei ist im letzten Bit jedes Pixels ein Code versteckt (also wenn man dann jeweils 8 Bit wieder zusammen setzt ergibt sich jeweils wieder ein char den man wieder ausgeben muss)
Jetzt zu meinem Problem: Um die Errorfälle die sich bei so einem Programm ergeben können sollen wir mit den entsprechenden return (int Wert) zurück geben also zB return 7 für "Out of memory" (wenn der heap voll ist)
Da wir zwecks Übersichtlichkeit mit mehreren Funktionen arbeiten sollen, habe ich mir gedacht ich löse das Problem, indem ich die Funktionen mit einem int als Rückgabewert definiere, da ich so jederzeit in den entsprechenden Funktionen abbrechen kann sobald es zu einem Error kommt.
Ich muss (durch die Tatsache dass ich von den Funktionen nur ints zurück gebe) also mit Pointern arbeiten und diese in der main anlegen, sie dann an die entsprechende Funktion übergeben und kann sie dort wieder bearbeiten.
Wenn ich einen Pointer in der main anlege, sagen wir einen
muss ich ihm ja einen Speicher reservieren (sagen wir mal die Größe von einem char) und wenn ich jetzt den Speicherbereich in der Funktion mit realloc erweitern will, kann ich den Speicher am Ende meines Programms nicht mehr freigeben und bekomme ein riesen Speicherleck...
Habt ihr vielleicht eine Idee wie ich einen Speicher, den ich in der main mit malloc angelegt, dann in einer Funktion mit realloc erweitert habe wieder freigeben kann?
LG Andi
Ich arbeite gerade an einem Projekt für die Uni weshalb ich hier keinen Code posten will, da ich da möglicherweise Probleme mit einem Plagiatsvorwurf bekomme.
Ich habe als Aufgabestellung folgendes bekommen:
Ich soll eine .bmp Datei einlesen. In dieser Datei ist im letzten Bit jedes Pixels ein Code versteckt (also wenn man dann jeweils 8 Bit wieder zusammen setzt ergibt sich jeweils wieder ein char den man wieder ausgeben muss)
Jetzt zu meinem Problem: Um die Errorfälle die sich bei so einem Programm ergeben können sollen wir mit den entsprechenden return (int Wert) zurück geben also zB return 7 für "Out of memory" (wenn der heap voll ist)
Da wir zwecks Übersichtlichkeit mit mehreren Funktionen arbeiten sollen, habe ich mir gedacht ich löse das Problem, indem ich die Funktionen mit einem int als Rückgabewert definiere, da ich so jederzeit in den entsprechenden Funktionen abbrechen kann sobald es zu einem Error kommt.
Ich muss (durch die Tatsache dass ich von den Funktionen nur ints zurück gebe) also mit Pointern arbeiten und diese in der main anlegen, sie dann an die entsprechende Funktion übergeben und kann sie dort wieder bearbeiten.
Wenn ich einen Pointer in der main anlege, sagen wir einen
Code:
char *image_data_pointer = malloc(sizeof(char));
Habt ihr vielleicht eine Idee wie ich einen Speicher, den ich in der main mit malloc angelegt, dann in einer Funktion mit realloc erweitert habe wieder freigeben kann?
LG Andi