struct und zeiger?
-
Hallo ich bastel gerade ein bisschen mit struct's und habe ein Problem, das ist mein Programm:
#include <stdio.h> typedef struct { int kontonummer; //Kontonummer double kapital; //Kapital float zinssatz; //Zinssatz char* name; //Kunden Name char* vorname; //Kunden Vorname } Kunden; void setKunde(Kunden*, int, double, float, char*, char*); int main(void){ Kunden kunden; setKunde(&kunden, 1, 12000.56, 2.5, "Herweg", "Tobias"); printf("%s\n", kunden.vorname); return 0; } void setKunde(Kunden* k, int nr, double kapital, float zSatz, char* name, char vorname){ k->kontonummer = nr; k->kapital = kapital; k->zinssatz = zSatz; k->name = name; k->vorname = vorname; }
Wenn ich dieses Compilieren möchte, bekomme ich auf "printf("%s\n", kunden.vorname);" einen Fehler: Zugriffverletzung beim lesen
-
Ist das "char vorname" bei der Funktionsdefinition so beabsichtigt oder ist das ein C&P-Fehler? Ansonsten solltest du mal einen Debugger fragen, was in dein struct reingeschrieben wurde.
-
Laut Debugger ist im struct drin was auch drin sein soll.
Ich habe es auch mit kunden.kontonummer versucht, es kommt aber der selbe Fehler.
-
k->name = name; k->vorname = vorname;
mal mit
strdub(k->name, name); strdub(k->vorname, vorname);
probieren? Bei Programmende mit free(kunden.vorname) und free(kunden.name) wqieder freigeben. Bin mir net sicher hab gerade keinen Compiler zur Hand.
-
ergibt neue Fehler:
error LNK2001: Nicht aufgelöstes externes Symbol "_strdub".
fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
-
lord_fritte schrieb:
error LNK2001: Nicht aufgelöstes externes Symbol "_strdub".
strdup vielleicht?