2017-03-01 2 views
0

Ich habe ein C++ - Programm, das dynamisch ein Array von ganzen Zahlen zuweist. In der letzten Funktion unten kann ich nicht herausfinden, wie man Platz für das Array reserviert, new int[*arrPtr]; ist, was ich im Sinn hatte, nachdem ich das Kapitel über Zeiger gelesen habe, und es kompiliert richtig, aber das Programm stürzt ab. Könnte sich jemand meinen Code ansehen und mir in die richtige Richtung zeigen?Speicherplatz für ein Array zuweisen

Ich schätze jede Hilfe in dieser Angelegenheit, vielen Dank für Ihre Zeit.

+1

int * ArrPtr = nullptr; * arrPtr versucht, den Inhalt des Speichers an Adresse 0x0 zu nehmen und als Ganzzahl zu interpretieren. Dieser Speicher gehört nicht zu Ihrem Programm und das Betriebssystem bringt Ihr Programm zum Absturz, wenn Sie versuchen, ungültigen Speicher zu verwenden. – xaxxon

Antwort

1

Es ist nicht

new int[*arrPtr] 

Es ist

arrPtr = new int[num]; //num is the size of the array. 
+2

..oder verwenden Sie einfach einen Std :: Vektor – xaxxon

+0

@xaxxon Ich stimme zu, dass Vektoren viel schöner sind, mit zu spielen, aber die Zeile 'using namespace std;' führt mich zu der Annahme, dass dies eine Klassenübung in Bezug auf Hinweise ist. – JGroven

+1

oder es könnte einfach für die Einfachheit des Testfalls sein. Beurteilen Sie nicht basierend auf der Syntax des Testfalls - denken Sie daran, es sollte so weit wie möglich reduziert werden. – xaxxon