edit: Ok Fehler ist gelöst xD Habe gerade noch eine Bedingung in die Python Methode gesetzt, dass wenn der Text leer ist, die Methode gar nicht ausgeführt werden soll und einfach ein leeres set zurück gegeben werden soll, mit dem Ziel weniger printouts zu haben. Nachdem ich gerade einfach aus Spaß den free Aufruf nochmal in die Methode gepackt habe ist das Programm auf einmal nicht mehr abgestürzt.
edit2: Nun ist auch der Grund gefunden warum es bei einem leeren String abgestürzt ist.
Code: Alles auswählen
DArray *newDArray() {
DArray *arr = (DArray*) malloc(sizeof(DArray));
arr->elems = NULL;
arr->length = 0;
arr->capacity = 0;
return arr;
}
void dArrayFree(DArray *arr) {
if (arr != NULL) {
if (arr->elems != NULL){
uint i;
for (i = 0; i < arr->length; i++) {
free(arr->elems[i]);
}
free(arr->elems);
}
free(arr);
}
}
Da ich vorher nicht in der Methode newDArray den Pointer auf NULL gesetzt habe, wurde natürlich die Adresse auf irgendwas gesetzt. Die Prüfung in der Free Methode konnte natürlich nicht greifen und wollte irgendwo im Nirvana Speicher frei machen. Ich weiß, böser Patzer
Trotzdem danke für eure Hilfe