Es ist ein zufälliger Baum Generator und ich muss die Werte des Baumes auf Kind-Traversals verketten. Zum Beispiel, wenn ichBaum Traversal und Verkettung Abstürze in C
com ----- org------net---
|
mom---dad---son
|
good
Ich möchte die Zeichenfolge „goodsonorg“
struct trie_node *going = root; // this gets the root of the tree
char* joiner = NULL; //using this to join the previous part
char *lastOne = (char *)(malloc(going->strlen+1000)); //setting safe buffer
while(going->next != NULL || going->children != NULL) {
while(going->next){ // always go as right as possible
going = going->next;
}
if(going->children){ //traverse down to child
if(joiner == NULL) { // traverse from root (previous will be null)
printf(" first key is: \n");
joiner = (char *)(malloc(going->strlen)+100);
strncpy(joiner,going->key, going->strlen+1);
puts(joiner);
}
else{
printf(" \n We need to concatenate: \n");
going = going->children; // go down
strncpy(lastOne, going->key, going->strlen); // get the current key in last
puts(lastOne);
printf(" with the previous one to get: \n ");
strcat(lastOne, joiner); // attach the joiner to it.
strncpy(joiner, lastOne, strlen(joiner)+strlen(lastOne)); // then update the joiner
puts(lastOne);
}
Bis zum Ende dieses Blocks des Codes haben sollte ich meine verketteten Zeichenfolge in La Stone haben, jedoch bekomme ich einen segfault für irgendein Grund. Ich bin mir nicht sicher warum. Ich sortiere sicher große Bugger, weil Realloc mir Fehler gab. Ist etwas offensichtlich, dass ich hier vermisse? Die Baumdurchquerung funktioniert definitiv.
Sie sollten in [richtige C-Formatierung] (// prohackr112.tk/r/proper-c-formatting) schauen. Oder lerne, wie du deinen Code gründlich verschleiern kannst (// prohackr112.tk/r/proper-c-obfuscation). –
Ich denke, das Format wurde in Copy Pasting durcheinander gebracht – qaispak
In jedem Fall; Die richtige Formatierung zieht Leute an und ermutigt sie, Ihnen zu helfen. –