Die Funktion erhalten eine Sent und müssen zwischen den 'n' ersten Worten ersetzen. Wenn es zum ersten Realloc kommt, stoppt das Programm und der Fehler wird angezeigt. Ich versuche eine Menge Kombination von Sätzen, die neue Erinnerung, nach der ich frage, ist größer als die existierende Erinnerung.Fehler beim Realloc in c (Ausnahme trown (ucrtbased.dll))
meine Funktion:
void Reverse(char **sentence, int n)
{
int m;
char *temp;
for (m = 0; m < n; m++, n--)
{
temp = (char*)malloc(strlen(sentence[m]) * sizeof(char));
temp = sentence[m];
sentence[m] = (char*)realloc(sentence[m], strlen(sentence[n]) * sizeof(char));
sentence[m] = sentence[n];
sentence[n] = (char*)realloc(sentence[n], strlen(temp) * sizeof(char));
sentence[n] = temp;
free(temp);
printf("%s ", sentence[m]);
}
}
Welchen Fehler haben Sie gefunden? –
Wenn Sie nicht genau wissen, was Sie tun, ist es zu kurz, gerade genug Platz mit 'strlen (x)' zuzuweisen. – usr2564301