Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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!

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.

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);

}

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.

ich hab einfach nur das array für plz um 1 erhöht so wie er es mir gesagt hat.

also plz[6].

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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.