Zum Inhalt springen

[c] pointer from integer without cast Fehler


Empfohlene Beiträge

Geschrieben

Hey, wie der name schon sagt ich hab ne menge Fehler dieser Art.

/********************************************/

/* Datensatz anhängen */

/********************************************/

void anhaengen(char *vname,char *nname,char *kontonummer,char *telefonnummer,char *email,int plz,char *stadt,char *passwort,int rechte)

{

struct benutzerdaten *zeiger, *zeiger1;

if(ende == NULL)

{

// Speicherplatzreservierung auf element ende

if((ende=(struct benutzerdaten *)malloc(sizeof(struct benutzerdaten))) == NULL)

{

printf("Konnte keinen Speicherplatz für ende reservieren\n");

return;

}

}

// für erstes Element der Liste

if(anfang == NULL)

{

if((anfang = (struct benutzerdaten *)malloc(sizeof(struct benutzerdaten))) == NULL)

{

printf("Kein Speicherplatz vorhanden für anfang\n");

return;

}

// Übergeben der Werte auf anfang

strcpy(anfang->vname, vname);

strcpy(anfang->nname, nname);

strcpy(anfang->telefonnummer, telefonnummer);

strcpy(anfang->email, email);

strcpy(anfang->kontonummer,kontonummer);

strcpy(anfang->a.stadt, stadt);

strcpy(anfang->passwort, passwort);

strcpy(anfang->a.plz,plz);

strcpy(anfang->rechte, rechte);

anfang->next=NULL;

ende=anfang;

ende->prev=NULL;

}

else

// für alle anderen Elemente

{

zeiger=anfang;

// geht bis zum letzten durch und das nächste Element wird dran gehangen

while(zeiger->next != NULL)

zeiger=zeiger->next;

if((zeiger->next =(struct benutzerdaten *)malloc(sizeof(struct benutzerdaten))) == NULL)

{

printf("Kein Speicherplatz für das letzte Element\n");

return;

}

zeiger1=zeiger;

zeiger=zeiger->next;

strcpy(zeiger->vname, vname);

strcpy(zeiger->nname, nname);

strcpy(zeiger->telefonnummer, telefonnummer);

strcpy(zeiger->email, email);

strcpy(zeiger->kontonummer,kontonummer);

strcpy(zeiger->a.stadt, stadt);

strcpy(zeiger->passwort, &passwort);

strcpy(zeiger->a.plz, plz);

strcpy(zeiger->rechte, rechte);

zeiger->next=NULL;

ende=zeiger;

zeiger->prev=zeiger1;

zeiger1->next=zeiger;

}

}

}

Hier der Auszug aus dem Header:

void anhaengen(char *vname,char *nname,char *kontonummer,char *telefonnummer,char *email,int plz,char *stadt,char *passwort,int rechte);

weitere Fehler: [Linker error] undefined reference to `anhaengen'

[Warning] passing arg 1 of `strcpy' from incompatible pointer type

Ich find die Fehler einfach nicht.

Wäre dankbar über hilfe!

Geschrieben
Hey, wie der name schon sagt ich hab ne menge Fehler dieser Art.
Es wäre hilfreich gewesen, hättest du gesagt, in welchen Zeilen diese Fehler auftreten. Ich vermute aber mal, dass der Compiler nicht mag, wenn du ints mit strcpy zu kopieren versuchst.

Der Linkerfehler weist darauf hin, dass du die gezeigte Datei einfach nicht dazugelinkt hast.

Geschrieben

jup habs hin bekommen mit den int .... blöder fehler!

Allerings hab ich jetzt ein neues Problem.

Ich will einen Struct in eine Datei schreiben.

Es geht auch alles erstmalsoweit.

Problem ist folgendes:

Max | MÂustermann | 8888888888 | passwort | 55555555555 | 01108Dresden | Dresden | (null)

Er hängt an die PLZ gleich noch den Ort dran und gibt ihr zusäzlich noch einmal aus.

Woran kann das liegen?

Der struct dazu:

struct adresse

{

char plz[5];

char stadt[30];

};

struct benutzerdaten

{

char vname[30];

char nname[30];

char telefonnummer[12];

char passwort[30];

char kontonummer[10];

int rechte;

struct adresse a; //siehe oben

struct benutzerdaten *next;

struct benutzerdaten *prev;

};

sowie den Schreibpart:

void write(void)

{

FILE *Ziel;

struct benutzerdaten *zeiger;

int i=0;

Ziel = fopen("nutzer.txt", "w+b"); //r?

if(Ziel == NULL)

{

printf("\224ffnen der Datei nutzer.txt fehlgeschlagen!");

getch();

}

zeiger=anfang;

while (zeiger!= NULL)

{

fprintf(Ziel, "%s | %s | %s | %s | %s | %s | %s | %s \n",zeiger->vname, zeiger->nname, zeiger->kontonummer, zeiger->passwort, zeiger->telefonnummer, zeiger->a.plz, zeiger->a.stadt, zeiger->rechte);

zeiger=zeiger->next;

}

fclose(Ziel);

}

Geschrieben

Danke hat mein Problem teilweise gelöst.

Max | Mustermann | 8888888888 | e | 55555555555 | 01108 | | (null)

das steht jetzt da.

Der Ort wird gar nicht mehr mit angegeben.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...