Ich habe ein Problem mit C, dieser Code werfen Stack-Dump. Ich habe keine Ahnung, was falsch ist.Verwendung von Realloc auf einem zuvor malloc-ed-Zeiger verursacht Segmentierung Fehler
char *text;
text = (char *) malloc(sizeof (char));
int size = 1;
char c = 'a';
char *new;
while (1) {
c = getchar();
putchar(c);
if (c == 10) {
text[size - 1] = '\0';
break;
}
text[size - 1] = c;
size++;
new = (char *) realloc(text, size * sizeof (*new));
free(text);
text = new;
}
[Bitte lesen Sie in dieser Diskussion, warum nicht den Rückgabewert von 'malloc()' und Familie in 'C' zu werfen.] (Http://stackoverflow.com/q/605845/2173917). –
remove 'free (text);', das ist falsch und nicht erforderlich, 'realloc()' kümmert sich. –
Fall des Lesens der Manpage hier. –