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
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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
// Sortieren // Simon Klausner, Manuel Unterberger, Maximilian Gerhardt, Manuel Willard // purpose : - define list // - define list functions (add, find, delete) #include <stdio.h> // Struct List struct List { int iNumber; // number char cChar; // character struct List *next; // pointer on the next element of the list }; void CreateElement(int iNumber, char cChar, struct List **base); // Creates Element in list void DeleteElement(int iNumber, struct List **base); // Deletes Element void Output(struct List *base); // Output function // main function // purpose : - Create a list // - Call all functions int main () { // Variables struct List *base=NULL; // pointer on the first element of the list CreateElement(8, 'h', &base); DeleteElement(8, &base); Output(base); return 0; } // end main // Create Element // purpose : - create a element in the list void CreateElement(int iNumber, char cChar, struct List **base) { // Variables struct List *ptr=NULL; ptr = *base; if (ptr == NULL) { // Create first element of list ptr = (struct List *) malloc(sizeof(struct List)); *base = ptr; } else { // Create more elements // Search end of list while (ptr->next != NULL) ptr = ptr->next; // Create new element ptr->next = (struct List*) malloc(sizeof(struct List)); ptr = ptr->next; } ptr->iNumber = iNumber; ptr->cChar = cChar; ptr->next = NULL; } // end Create Element // Delete Element // purpose : - delete element in the list void DeleteElement(int iNumber, struct List **base) { struct List *ptr=NULL, *ptrNext=NULL; assert(*base != NULL); if ((*base)->iNumber == iNumber) { // First element of list will be removed ptr = (*base)->next; free(*base); *base = ptr; } else { ptr = *base; // Search for elements which will be deleted while (ptr->next != NULL) { ptrNext = ptr->next; if (ptrNext->iNumber == iNumber) { // Found! // next of predecessor points on successor ptr->next = ptrNext->next; // Delete searching element free(ptrNext); break; } ptr = ptrNext; // if not found yet } } } // end Delete Element // Output function // purpose : - prints the elements of the list void Output(struct List *base) { struct List *ptr=NULL; ptr = base; while (ptr != NULL) { printf("\n\nZahl: %d", ptr->iNumber); printf("\nBuchstabe: %c", ptr->cChar); ptr = ptr->next; } } // end Output |
[/code]Zitat
undefined refference to assert : in function DeleteElement[\quote]
und die printfunktion liefter,wenn ich das assert auskommentiere gar nix (vermutlich,weil es eben das assert brauch).
kann mir wer ne funktionierende lösung posten oder mir erklären, warum da ein fehler auftritt?
mfg
Drac
Alter Hase
C-/C++-Quelltext |
|
1 |
#include <assert.h> |
Zitat von »"Draculark"«
lol du hast den assert fehler also nicht?
was geht? oO
edit: hm ja wenn ich assert auskommentiere funktionierts dann doch
jetzt müsste ich die liste noch umdrehen also dass das ende am anfang steht und der anfang am ende.
hat wer ne idee, wie sowas kurz gehen könnte? ich komm nur auf komplizierte lösungen
Quellcode |
|
1 2 3 4 5 |
Merker=NULL for i=Erstes_Element to Letztes_Element i.pointer=Merker Merker=i next i |
Quellcode |
|
1 2 3 |
merker = first; first = last; last = merker; |
Werbeanzeige