Frage zu einer Codezeile
-
Guten Tag. Ich bin neu hier und hoffe dass ich hier meine Frage einigermaßen richtig stelle.
Ich hab nicht wirklich viel Erfahrung und Ahnung von und mit C. Diese folgende eine Zeile Quellcode sagt mir so gar nicht was sie macht. Evtl. kann mir jemand helfen.
MLP *mlp; mlp = (MLP*)malloc(sizeof(MLP) +(lyrcnt-2) *sizeof(MLPLAYER));
MLP ist ein Struct, genauso wie MLPLAYER
lyrcnt ist ein int.Vielen Dank schon mal
-
Es wird Speicher angefordert.
-
svensen schrieb:
Guten Tag. Ich bin neu hier und hoffe dass ich hier meine Frage einigermaßen richtig stelle.
Ich hab nicht wirklich viel Erfahrung und Ahnung von und mit C. Diese folgende eine Zeile Quellcode sagt mir so gar nicht was sie macht. Evtl. kann mir jemand helfen.
MLP *mlp; mlp = (MLP*)malloc(sizeof(MLP) +(lyrcnt-2) *sizeof(MLPLAYER));
MLP ist ein Struct, genauso wie MLPLAYER
lyrcnt ist ein int.Vielen Dank schon mal
Mit malloc wird dynamischer Speicher reserviert. In diesem Fall also:
-von der Größe von MLP in Byte
Plus
-von (lyrcnt-2)*(der Größe von MLPLAYER - ebenfalls in Byte)
Bzw. sizeof() ist dazu da, die Größe von Irgendwas festzustellen.
-
ok. Ich glaube damit kann ich was anfangen. Danke für die schnelle Hilfe
-
mit malloc wird immer Speicher reserviert und gibt ein Zeiger zurück, der auf dieser Speicherbereich zeigt daher auch der typecast(*MLP)
-
myouness27 schrieb:
... daher auch der typecast(*MLP)
...der in C unnötig ist. von void* wird automatisch gecastet.