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.

Geschrieben

Das kann auch nicht gehen.

Du mußt die "int rechte" entweder als %i darstellen, oder mit "itoa" umwandeln.

ich glaube, das ist der dritte Thread zu dem Thema.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...