Linked list (C)
-
Hi , ich hab ein Problem mit meinem code und zwar:
Ich erhalte immer folgende Fehlermeldung beim compilieren.
[Error] incompatible types when assigning to type 'char[255]' from type 'char *'
mein code:
struct _element{ char title[MAX_STR]; char author[MAX_STR]; int year; long long int isbn; element* next; }; element *construct_element(char *title, char* author, int year, long long int isbn) { element* Buch = (element*) malloc(sizeof(element)); Buch->title = title; Buch->author = author; Buch->year = year; Buch->isbn = isbn; Buch->next = NULL; return Buch; }
So wie ich das verstanden haben die zwei Zuweisungen probleme mit den beiden chars ( title und author):
Buch->title = title; Buch->author = author;
Wie löse ich das problem? Wenn ich
char title[MAX_STR]; char author[MAX_STR];
zu
char *title; char *author;
ändere hab ich das Problem ja nicht mehr doch ich muss das [MAX_STR] verwenden.
-
...
-
Buch über C lesen. Kapitel Strings.
Dann wirst du erfahren, wie Strings in C funktionieren und dass du dazu strcpy brauchst: http://www.cplusplus.com/reference/cstring/strcpy/
-
Bitmapper schrieb:
return Buch;
Die lokale Variable ist doch nur in der Funktion gültig -> Speicherleck!
Blödsinn!
Buch ist ein Zeiger und der Bereich auf den Buch zeigt, wurde mitmalloc
beschafft.
Es wird ja nur der Inhalt von Buch (die Adresse) zurück gegeben. KEin SpeicherleckBitmapper schrieb:
element *construct_element(char title[MAX_STR], char* author, int year, long long int isbn)
Auch Blödsinn, da title da genauso ein
char*
ist.
-
DirkB schrieb:
Auch Blödsinn, da title da genauso ein char* ist.
?
char title[MAX_STR];
-
Bitmapper schrieb:
DirkB schrieb:
Auch Blödsinn, da title da genauso ein char* ist.
?
char title[MAX_STR];
Für dich das KApitel: Arrays als Parameter von Funktionen.
Spielt eine wichtige Rolle bei Strings.Zudem kannst du immer noch nicht ganze Arrays mit einem = zuweisen.
(ich meine nicht initialisieren)
-
DirkB schrieb:
Buch über C lesen. Kapitel Strings.
Dann wirst du erfahren, wie Strings in C funktionieren und dass du dazu strcpy brauchst: http://www.cplusplus.com/reference/cstring/strcpy/
Okey super vielen Dank , das war mein Fehler :D.
Bin halt noch ein totaler studi anfänger.