-1
Ich habe eine Struktur wie folgt aus:Wenn Zeiger in C verwenden
typedef struct {
int hi;
} my_struct;
Gibt es einen Vorteil bei der Verwendung dieses:
my_struct *test = malloc(sizeof(my_struct));
test->hi = 1;
Statt dessen:
my_struct test;
test.hi = 1;
Es hängt davon ab, was Sie tun. Wenn Sie diese beiden Codefragmente sehen, gibt es keinen praktischen Unterschied (außer im ersten Fall, wo Sie dynamisch zuweisen, dürfen Sie nicht vergessen, den Speicher freizugeben). –
Beide würden Speicher für Ihre Struktur zuweisen, aber malloc() wird aus dem Heap zuordnen, "mystruct test" wird auf dem Stack zuweisen –
Sie sind nützlich, wenn Sie möchten, dass Ihr Programm tatsächlich etwas produziert, anstatt nur privat zu tun Berechnung an sich selbst (was ein intelligenter Compiler zu einem No-Op optimieren würde). ;-) – PSkocik