Hiho!
Folgendes: Ich lerne gerade C++ und bin gerade bei dem Thema "Strukturen".
Hab da gerade ne Aufgabe aus dem Buch, dort soll man ein Struktur-Array sortieren (nach Werten aus der Struktur). Allerdings soll man nur die Adressen jeweils vertauschen und nicht den Inhalt der einzelnen Strukturelemente!
Das Problem ist nun: Ich habe den Dreieckstausch für die Adressen 1:1 aus dem Buch abgeschrieben, aber wenn ich das Programm dann ausführen will, stürzt es ab (progge mit Dev-Cpp).
Ich habe auch schon zig andere Sachen ausprobiert, aber nichts hat geklappt.
Hier mal der ganze Code (Struktur hier auf eine int Variable reduziert):
Folgendes: Ich lerne gerade C++ und bin gerade bei dem Thema "Strukturen".
Hab da gerade ne Aufgabe aus dem Buch, dort soll man ein Struktur-Array sortieren (nach Werten aus der Struktur). Allerdings soll man nur die Adressen jeweils vertauschen und nicht den Inhalt der einzelnen Strukturelemente!
Das Problem ist nun: Ich habe den Dreieckstausch für die Adressen 1:1 aus dem Buch abgeschrieben, aber wenn ich das Programm dann ausführen will, stürzt es ab (progge mit Dev-Cpp).
Ich habe auch schon zig andere Sachen ausprobiert, aber nichts hat geklappt.
Hier mal der ganze Code (Struktur hier auf eine int Variable reduziert):
Code:
#include <iostream.h>
#include <stdio.h>
#include <conio.c>
#include <windows.h>
const int i=10;
struct kontos
{
int knr;
};
void sortiere(kontos *ptr)
{
kontos *hilfe;
for(int x=0;x<i;x++)
{
for(int y=x+1;y<i;y++)
{
if((*(ptr+x)).knr>(*(ptr+y)).knr)
{
//Hier der Dreieckstausch aus dem Buch:
*hilfe=*(ptr+x);
*(ptr+x)=*(ptr+y);
*(ptr+y)=*hilfe;
//_getch();
}
}
}
}
main()
{
kontos konten[i];
/*
srand(GetTickCount());
for(int x=0;x<i;x++)
{
konten[x].knr=rand()%1000;
}
*/
int f=0;
for(int g=9;g>=0;g--)
{
konten[f].knr=g;
f++;
}
for(int x=0;x<i;x++)
{
cout<<konten[x].knr<<"\n";
}
_getch();
sortiere(konten);
for(int x=0;x<i;x++)
{
cout<<konten[x].knr<<"\n";
}
_getch();
}