Konvertierungsprobleme



  • hi leute!
    ich hab da mal ein problem: und zwar meldet er mir dass er char nicht in person* umwandeln kann. warum!??!
    genaue fehlermeldung: error C2440: '=': 'char *' kann nicht in 'person *' konvertiert werden

    danke für eure Hilfe!

    #define _CRT_SECURE_NO_DEPRECATE
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    typedef struct person{
    	char *name;
    	struct person *next;
    }Person;
    
    void einfuegen (Person **p, char *name){
    	Person *zeiger;
    
    	while (*p != NULL && strcmp((*p)->name, name) <= 0)
    		p = &((*p)->next);
    	zeiger =*p;
    	*p = (Person *)malloc(sizeof(Person));
    	(*p)->name = (char *)malloc(sizeof(strlen(name)+1));
    	strcpy((*p)->name, name);
    	(*p)->next = zeiger;
    }
    
    void drucke (Person *liste){
    	while (liste!= NULL){
    			printf("%s\n", liste->name);
    			liste = liste->name;
    	}
    	printf("\n");
    }
    
    void main(void){
    	Person p1 = {"Weigl", NULL};
    	Person p2 = {"Schmitt", &p1};
    	Person p3 = {"Messing", &p2};
    	Person p4 = {"Schymala", &p3};
    	Person *liste = NULL;
    
    	drucke(liste);
    	einfuegen(&liste, "Meier");
    	drucke (liste);
    }
    

    🙂 🙂



  • Spliffy85 schrieb:

    liste = liste->name;
    

    muss doch 'liste->next' sein, oder?



  • liste = liste->next;



  • merci


Anmelden zum Antworten