Zitat von
sticky bit
Wieso Schleife? Ich sehe da in deinem Code keine Schleife?
Du forderst genau konstant zwei Speicherbreiche an, einmal ptr und einmal ptr.satz, die solltest du eigentlcih ohne weiteres so auch wieder freigeben können. Allerdings in dem Fall in umgekehrter Reihenfolge zum Anfordern, weil prt.satz ja in prt liegt und damit weg sein könnte wenn du prt freigibst, wenn ptr.satz (der Zeiger nicht der Speicherbereich) aber weg is kannst du den Speicherbereich natürlich nimmer freigeben ohne den Zeiger...
Aber ansonsten seh ich kein Problem. Hast dus schon mal versucht? Wenn ja wie und was ist passiert?
Hi Sticky
ich meinte das so und ich denke das willst du mir auch damit sagen (hoffe ich)
Code:
#include <stdio.h>
#include <string.h>
typedef struct{
char *satz;
}Satz_t;
int main(void){
Satz_t *ptr;
char string[100];
ptr = (Satz_t*) malloc( 100 *sizeof(Satz_t));
printf("Schreib einen Satz:");
fgets(string,99,stdin);
ptr.satz = (char*) malloc(100 * sizeof(char));
strcpy(ptr.satz, string);
printf("%s", ptr.satz);
for(i=0; i <= size; i++)
free(ptr[i].satz[i]);
free(ptr);
}
Und dabei kommt es aber zu einem Compiler fehler.
Lesezeichen