Ich sah Code auf einigen Websites auf realloc() wie folgt.Ist es eine gute Programmierpraxis, die von realloc() zurückgegebene Adresse demselben Zeiger zuzuordnen?
int *p = (int *)malloc(sizeof(int) * 10);
p = (int *)realloc(p, 100);
Aber wie der Standard sagt, wenn realloc fehlschlägt, wird der ursprüngliche Block unberührt gelassen und es wird NULL zurückgegeben.
Also, wenn Realloc fehlschlägt, von oben Beispiel, verlieren wir die Fähigkeit, p zu befreien. Kann jemand bitte lassen Sie mich wissen, ist es gute Programmierpraxis, die Adresse von Realloc() auf den gleichen Zeiger zugewiesen?
Unrealed, solange Sie sich mit dem Thema "gute Programmierpraxis" beschäftigen, lesen Sie vielleicht folgendes: [Werde ich das Ergebnis von 'malloc' übertragen?] (Https://stackoverflow.com/questions/605845/ do-i-cast-das-Ergebnis-von-malloc). – WhozCraig
* Kann jemand bitte lassen Sie mich wissen, ist es gute Programmierpraxis, um die Adresse von Realloc() auf den gleichen Zeiger? * Direkt nach * Also wenn Realloc fehlschlägt, von oben Beispiel, verlieren wir die Fähigkeit zu befreien p. *? Was denken Sie? –
Wer hat abgestimmt, um zu schließen, wie ist das "in erster Linie auf der Grundlage von Meinungen"? Die Praxis OP gefragt ist ** immer ein Bug **. –