extraña falla seg, probablemente con realloc
char *dumpTB (TB tb){
char* text = malloc(sizeof(char));
int i = 0; //
int x = 0; //string index
tNode* curr = tb->head;
while(curr != NULL){
while(curr->line[x] != '\n'){
printf("%d", i);
text[i] = curr->line[x];
printf("%c\n", text[i]);
text = realloc(text, i+1);
i++;
x++;
}
text[i] = '\n';
printf("%c", text[i]);
text = realloc(text, i+1);
i++;
x = 0;
curr = curr->next;
}
return text;
}
Así que logré imprimir las primeras 12 letras de mi cadena usando las declaraciones de impresión, pero por alguna razón me da un error de seg poco después de imprimir la letra 12 'l', y según las declaraciones de impresión parece ocurrir alrededor del realloc ... ¿Alguien puede decirme qué hice mal?
int i = 1; //
int x = 0; //string index
tNode* curr = tb->head;
while(curr != NULL){
while(curr->line[x] != '\n'){
printf("%d", i-1);
text[i-1] = curr->line[x];
printf("%c\n", text[i-1]);
text = realloc(text, i+1);
i++;
x++;
}
printf("%d\n", i-1);
text[i-1] = '\n';
printf("%c", text[i-1]);
text = realloc(text, i+1);
i++;
x = 0;
curr = curr->next;
//printf("%c\n", curr->line[0]);
}
Intenté corregir los errores de índice, una afirmación de sysmalloc de aspecto muy largo que aborta el programa.