Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
void sort(struct personal *liste[], int zaehler); int main() { int zaehler=0; struct personal *liste[10]={NULL}; sort(liste, zaehler) _getch(); return 0; } void sort(struct personal *liste[], int zaehler) { struct personal *hptr=NULL; int mini = 0; int i=0, j=0; printf("Es wird nach Namen sortiert\n"); for(i=0; i<zaehler-1; i++) { mini = i; for(j=i+1; j<zaehler; j++) { if(strcmp(liste->pname,liste[j]->pname) > 0) { mini = j; } } hptr=liste; if(strcmp(liste->pname,liste[mini]->pname) != 0) { printf("Tausche: %s mit %s\n", liste->pname, liste[mini]->pname); } liste=liste[mini]; liste[mini]=hptr; } } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »JoeChip« (03.06.2011, 18:02)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Für mich sieht dein Code sehr abenteuerlich aus, aber was spricht dagegen, einfach die Startadresse von liste[10] zu übergeben?
C-/C++-Quelltext |
|
1 |
void * memcpy ( void * destination, const void * source, size_t num ); |
C-/C++-Quelltext |
|
1 |
void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) ); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
//Aus void foo(void) { int j, i; for(i = 0, i < 10, i++) { for(j = 0, j < 10 , j++) { //Mach was } } } //Wird void fooC99(void) { for(int i = 0, i < 10, i++) { for(int j = 0, j < 10 , j++) { //Mach was } } } |
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »foreach« (03.06.2011, 18:05)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
struct personal liste[10]; ... struct personal hptr; hptr=liste[i]; if(strcmp(liste[i].pname,liste[mini].pname) != 0) { printf("Tausche: %s mit %s\n", liste[i].pname, liste[mini].pname); } liste[i]=liste[mini]; liste[mini]=hptr; |
Du kannst keine Adressen umhängen, wenn Du nicht mit Adressen arbeitest. Du kopierst dann die gesamten Structs. Zum Glück macht C das schon ganz allein, ohne memcopy.
C-/C++-Quelltext
1 2 3 4 5 6 7 8 9 10 struct personal liste[10]; ... struct personal hptr; hptr=liste[i]; if(strcmp(liste[i].pname,liste[mini].pname) != 0) { printf("Tausche: %s mit %s\n", liste[i].pname, liste[mini].pname); } liste[i]=liste[mini]; liste[mini]=hptr;
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Mit dem Zuweisungsoperator, so wie es da steht? Oder was meinst Du mit "in XXX direkt kopieren"?
Werbeanzeige