Problem mit Referenzübergabe an Funktion[gelöst]
-
Sebastian Pizer schrieb:
Dranbleiben. Du kannst nicht wegen jeder Kleinigkeit sofort um Hilfe bitten. Wo bleibt denn da der Lerneffekt? Nimm 'nen Debugger...
Die dynamische Speicherverwaltung spielt mir wohl 'nen Streich. Ich komme nicht dahinter. Denn ich sehe nciht, wo da ein Fehler sein soll.
Muss aber einer sein.

-
skullyan schrieb:
Die dynamische Speicherverwaltung spielt mir wohl 'nen Streich. Ich komme nicht dahinter. Denn ich sehe nciht, wo da ein Fehler sein soll.
Muss aber einer sein.

Hast du nicht gelesen? Du sollst es einmal mit einem Debugger versuchen. Wenn du noch nicht damit umgehen kannst, wird es Zeit, das zu lernen.
-
Nexus schrieb:
skullyan schrieb:
Die dynamische Speicherverwaltung spielt mir wohl 'nen Streich. Ich komme nicht dahinter. Denn ich sehe nciht, wo da ein Fehler sein soll.
Muss aber einer sein.

Hast du nicht gelesen? Du sollst es einmal mit einem Debugger versuchen. Wenn du noch nicht damit umgehen kannst, wird es Zeit, das zu lernen.
Habs versucht. Nicht geschafft. Debuggen kann ich schon, aber irgendwie reicht meine Erfahrung nicht aus, um dieses Problem zu lösen.
-
Dann schau halt mal nach, wie andere Implementierungen aussehen.. Bubblesort gibts wie Sand am Meer. Dann kannst du vergleichen, was du anderst machst und du weisst dann auch, wo der Fehler ist..
-
skullyan schrieb:
Habs versucht. Nicht geschafft. Debuggen kann ich schon, aber irgendwie reicht meine Erfahrung nicht aus, um dieses Problem zu lösen.
Wie hast Du es denn "debugt"? Was hast Du alles überprüft?
-
Ähm, ich glaube, jetzt ist's gelöst:
#include <iostream> #include <time.h> using namespace std; void bubbleSort(int* begin, int* end) { ptrdiff_t const length = end - begin; for(ptrdiff_t g = 1; g < length ; ++g) { for(ptrdiff_t h = 0; h < length-g ; ++h){ if(begin[h] < begin[h+1]) { int tmp = NULL; tmp = begin[h+1]; begin[h+1] = begin[h]; begin[h] = tmp; } } } } // UND template<size_t S, typename T> void bubbleSort( T ( &a )[S] ) { bubbleSort(a,a+S); } int main() { size_t S; time_t t; cin >> S; int* a = new int[S]; srand(time(&t)); for(int f = 0; f < S; ++f) a[f] = rand(); bubbleSort(a, a+S);//geht for(int i = 0; i < S; ++i) cout << a[i] << endl; cin.sync(); cin.get(); }