Problem mit Array

CodeCrafterCpp

Erfahrenes Mitglied
Ich hab mal wieder was gefunden mit dem ich euch nerven kann :D
Mein Problem habe ich das ich folgenes haben möchte:
Ich möchte eine mit cin eine Zahl eingeben mit wie vielen Zeichen eine Array erstellt werden soll. Aber das geht ja nicht wie kann ich das machen? Hier ein Code ausschnitt.

C++:
	int anzahl;
	cout << "Gebe die Anzahl der Zahlen ein die Sortiert werden sollen(heapsort): ";
	cin >> anzahl;
	int a[anzahl];



mfG
 
Zuletzt bearbeitet von einem Moderator:
Ok das war mal nicht :D Selber gelöst die Lösung:
C++:
	int anzahl;
	cout << "Gebe die Anzahl der Zahlen ein die Sortiert werden sollen(heapsort): ";
	cin >> anzahl;
	int a[] = {anzahl};

Aber mal ne andere Frage ich Sortiere ja die Zahlen mit den heapsort Algoritmus aber was bringt das? Kann ich das nicht einfach mit einer While und if abfrage? Hat das ein vorteil?

Zu früh gefreut :D
Bekomme diesen Error:
Code:
Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.
 
Zuletzt bearbeitet von einem Moderator:
Arrays, welche auf dem Stack erstellt werden, kannst du keine dynamische Größe zuweisen.

Du brauchst ein Array auf dem Heap mittels Zeiger:
C++:
int anzahl;
cout << "Gebe die Anzahl der Zahlen ein die Sortiert werden sollen(heapsort): ";
cin  >> anzahl;

int *a = new int[anzahl];
 
Und delete nicht vergessen.

Woher hast du eigentlich diese {}-Schreibweise?
Auf die Weise kannst du Werte zuweisen, aber nicht die Anzahl bestimmen.

Zum Heapsort: Wie genau willst du mit while und if sortieren?
Der Vorteil von guten Such/Sortieralgorithmen ist meistens, dass sie schneller sind.
 
Also das mit den {} ist einfach aus experimentieren heraus gekommen. Ok mit den while und if war auch doof hab das grade mal überlegt das ist ja eigentlich heapsort. Aber irgendwie check ich das noch nicht so ganz mit der Array wie weise ich der den jetzt einen Wert zu bzw. wie lese ich einen aus?
 
Ganz normal?

ComFreeks Beispiel ergänzt:
C++:
int anzahl;
cout << "Gebe die Anzahl der Zahlen ein die Sortiert werden sollen(heapsort): ";
cin  >> anzahl;
 
int *a = new int[anzahl];

for(int i = 0; i < anzahl; i++)
    a[i] = 0;

delete[] a;
 

Neue Beiträge

Zurück