Ich versuche, eine Funktion zu schreiben, die alle Elemente in einem Array von Strings um eins erhöht.Alle Strings in Array verschieben (Problem mit realloc)
void shift_frags(char **frags, int frag_len, int cur)
{
int i;
for(i = cur; i < frag_len-1; i++)
{
if(strlen(frags[i+1]) > strlen(frags[i]))
frags[i] = realloc(frags[i], strlen(frags[i+1])*sizeof(char));
strcpy(frags[i], frags[i+1]);
}
free(frags[frag_len-1]);
}
Dies wird mir den Fehler geben: „realloc(): ungültig nächste Größe: ...“ Jedes Array dynamisch zugewiesen die Größe einer Zeichenfolge aus einer Datei gelesen werden. Sollte ich nicht in der Lage sein, neue Array-Größen dynamisch zuzuordnen, da mein frags-Parameter ein Array von Zeigern ist?
Dank
Computing sizeof (char) fügt dem Code nur Verschleierung hinzu. Es ist immer gleich 1. – unwind