Der Teil ist immer noch falsch
1 | if( NULL == prim ) printf("Fehler bei Speicherreservierung!\n");
|
2 |
|
3 | for(i;i < size;i++)
|
wenn du von calloc keinen Speicher kriegst, dann KANN die Funktion nicht
arbeiten. Es ist schön, wenn du eine Fehlermeldung ausgibst (die
eigentlich der Aufrufer ausgeben sollte). Es ist aber nicht schön, wenn
du danach einfach so weitermachst, als wäre nichts geschehen. Wenn du
keinen Speicher kriegst, dann kann die Funktion auch nicht arbeiten.
Punkt.
Und Speicher, den du allokierst, musst du auch wieder freigeben. Gewöhn
dich daran. Auch bei derartigen Übungsbeispielen ist das nicht
akzeptabel. Wenn du malloc oder calloc schreibst, ist das nächste was
man sich überlegt: wo wird der Speicher wieder freigegeben?