Schau an, die fehlende Klammerung war die Lösung! Danke für den Hinweis!

Hast ja Recht, wegen der Warnung. Aber das ist jetzt echt der erste Fall, wo mir eine Warnung wirklich an einer "funktionskritischen" Stelle erscheint. Bisher hab ich nur Warnungen erlebt mit einer Wichtigkeit von "Variable XY ist angelegt, wird aber nie verwendet". Sprich, die erschienen mir bisher einfach wenig wichtig. Aber da bin ich wohl nicht der erste

Aber so 100%ig hab ich das jetzt noch nicht verstanden. Ich würde jetzt meinen, dass durch
Code:
if( testarray[i] = (double*) realloc(testarray[i], 5 * sizeof(double)) == NULL)
keine klare Trennung zwischen Zuweisung und Vergleich gegeben ist. Und dann kommt es bei der Programmausführung zu einem (Speicher?-) Fehler, was durch die zusätzliche Klammerung wiederum verhindert wird.

Und du hast geschrieben, dass ich
mittels einer Zuweisung aus einem Integer direkt (ohne expliziten Cast) einen Pointer
mache. Aber oben habe ich doch
Code:
double **testarray
deklariert. Dann ist es doch ein double-Zeiger auf einen Speicherbereich, in dem ich weitere double-Zeiger habe. Die ich erweitern und daher wie ein Array verwenden kann. Oder nicht?
Mir ist noch nicht klar, wo bei der Sache "auf einmal" das Integer herkommt.

Danke schonmal für jeden Denkanstoß!
V:X