Hallo zusammen.
ich hab ein Programm geschrieben, welches mir mittels eines Bubblesorts Zahlen welche durch einen Benutzer eingegeben werden sortieren soll.
Grundsätzlich funktioniert es wunderbar, nur wenn mehrere Zahlen eingibt hängt sich das Programm auf und bricht ab.
Hier der Code ( C++):
Könnte es sein, dass ein memory leak auftritt, weil ich das new nicht lösche?
Wenn ja wo darf ich die Variabel p löschen?
Vielen Dank.
Gruss Splash
ich hab ein Programm geschrieben, welches mir mittels eines Bubblesorts Zahlen welche durch einen Benutzer eingegeben werden sortieren soll.
Grundsätzlich funktioniert es wunderbar, nur wenn mehrere Zahlen eingibt hängt sich das Programm auf und bricht ab.
Hier der Code ( C++):
Code:
#include <iostream> using namespace std; int main () { // definiert einen Pointer (double) und einen int zur Eingabe der Anzahl Zahlen double *p; int n; // Eingabe der Anzahl Zahlen cout<<"Bitte geben Sie die Anzahl Zahlen ein, die Sie sortieren moechten!"<<endl; cin >> n; cout <<"Geben Sie die Zahlen ein, die Sie sortieren moechten" << endl; // Anforderung des neuen Speicherplatzes (und Speicherung!!!) p=new double (n); // Eingabe der einzelnen zu sortierenden Zahlen in den neu zugeteilten Speicherplatz for (int i=0;i<n;i++) { cin>>p[i]; } // Ausgabe der gespeicherten Zahlen zur Kontrolle for(int i=0;i<n;i++){ cout<<p[i]<<" "; } cout << endl; // Hilfsvariabel zum sortieren double c; // Sortiervorgang der eingegebenen Werten for (int k=n-1;k>0;k--){ for (int j=0; j<k;j++) { if(*(p+j)>*(p+j+1)){ c = *(p+j); *(p+j) = *(p+j+1); *(p+j+1) = c; } } } // Ausgabe der sortierten Werte for (int h=0; h<n;h++) { cout << *(p+h) << " "; } cout << endl ; return (0);
Wenn ja wo darf ich die Variabel p löschen?
Vielen Dank.
Gruss Splash
Comment