1) Du hast da gar kein zweidimensionales Array. Du hast mehrere eindimensionale Arrays und ein zusätzliches Array mit Zeigern auf die Arrays. Der Zugriff sieht zwar genauso aus, aber das Layout im Speicher ist gänzlich anders. Und dementsprechend sähe ein Vergrößern eines "echten" zweidimensionalen Arrays auch ganz anders aus.
2)
Code:
if(testarray[i] = (double*) realloc(testarray, 5 * sizeof(double)) == NULL)
Hier müsste es eigentlich "realloc(testarray[i]," heißen.
3) Punkt 2 löst dein Problem aber nicht vollständig. Du darfst als ersten Parameter an realloc nur einen Pointer übergeben, den eine der *alloc-Funktionen geliefert hat, oder Null. Du übergibst in der Schleife aber uninitialisierten Müll an realloc. Nach dem realloc des Pointer-Arrays musst du die neuen Pointer erst mal Nullen.
Lesezeichen