A
Danke!
Ok. die Ausgabe läuft nun einigermaßen. Wobei noch 2 Probleme auftreten:
1.Vor es mir die 2 Dreien ausgibt gibt es aus mir unbekannten Gründen < : > aus.
2. Wenn ich neu->name={'u'}; schreibe gibt der Compiler eine Fehlermeldung. Also kann ich Name noch nicht mit einen Wert belegen.
Jetzt habe ich auch noch die 2. Funktion add geschrieben, wobei wenn ich so das Program ausführe Windows das Programm beenden muss. Kann mir bitte jemand sagen was nicht stimmmt?
#include <stdio.h>
#include <stdlib.h>
struct entry{
char name[20];
int Menge;
int Kategorie;
struct entry *next;
};
void ausgeben(struct entry*kopf){
struct entry*akt;
akt=kopf;
while(akt!=NULL){
printf("%s",akt->name);
printf("%i",akt->Kategorie);
printf("%i",akt->Menge);
akt=akt->next;
}
}
void add(struct entry* left, struct entry* element){
struct entry*aktuell;
/*element = (struct entry*) malloc(sizeof(struct entry));*/
if (element == NULL) {
printf(".......Speicherplatzmangel\n");
exit(1);
}
aktuell=NULL;
while(aktuell->next != left->next){
aktuell=aktuell->next;
}
element->next=aktuell->next;
aktuell->next=element;
}
int main(){
struct entry *kopf;
struct entry *neu;
kopf=NULL;
neu=malloc(sizeof(struct entry));
neu->next=kopf;
kopf=neu;
neu->Menge=3;
neu->Kategorie=3;
ausgeben(kopf);
struct entry *element=(struct entry*)malloc(sizeof(struct entry));
printf("\nGib den einzufuegenden Namen ein: ");
scanf("%s",&(*element).name);
printf("\nGib die Menge ein:");
scanf("%s",&(*element).Menge);
printf("\nGib die Kategorie ein:");
scanf("%s",&(*element).Kategorie);
add( kopf ,element);
ausgeben(kopf);
getchar();
return 0;
}
@_0_Dein saudummes Kommentar hat mir echt geholfen, danke!