Connor
Arrays in C++ werden auf dem Stack gespeichert. Der Stack hat jedoch weniger Speicher, um alle Anforderungen des laufenden Speichers zu erfüllen, insbesondere in den Multiprogramming-Systemen besteht ein dringender Bedarf, verschiedene Techniken zu verwenden, um die Speichernutzung zu optimieren. Zeigerarrays bieten hierfür eine einfache Möglichkeit. Es reduziert die Belastung des Stapels. Betrachten Sie den folgenden Code von C++, der die Verwendung von Zeigerarrays veranschaulicht. Ein Array von Zeigern auf Objekte #include
Klasse Punkt { öffentlich: Punkt () { x = 0; y = 0; } ~point() {} // Destruktor int Getx() const { return x; } int Gety() const { return y; aufrechtzuerhalten. Void Setx (int x) { x = x; } privat: Int x; int y; }; int main() { Punkt * Zeile[500]; int ich; Punkt * Punkt; für (i = 0; I < 500; i++) { ppoint = neuer Punkt; ppoint->Setx(i); ppoint->Sety(i); Linie[i] = pPunkt; } Rückgabe 0; } Der Code definiert einen Klassenpunkt mit zwei Datenmembern, x und y. Um diese Klasse zu verwenden, müssen wir ein Objekt erstellen.Dieser Code verwendet Punktobjekte, um ein Linienobjekt zu berechnen, da Linie eine Sammlung von Punkten ist, die sich zwischen ihren Endpunkten befinden. Im Normalfall, dh ohne die Verwendung von Pointer-Arrays, müssen alle diese 500 Punktobjekte im Stack gespeichert werden, aber durch die Verwendung von Pointer-Stack wird Platz gespart.