-1
我有這樣的結構:當使用指針用C
typedef struct {
int hi;
} my_struct;
是否有優勢,在使用這樣的:
my_struct *test = malloc(sizeof(my_struct));
test->hi = 1;
取而代之的是:
my_struct test;
test.hi = 1;
我有這樣的結構:當使用指針用C
typedef struct {
int hi;
} my_struct;
是否有優勢,在使用這樣的:
my_struct *test = malloc(sizeof(my_struct));
test->hi = 1;
取而代之的是:
my_struct test;
test.hi = 1;
無,通常情況恰恰相反。如果您可以使用的格式,以滿足您的requrement
my_struct test;
test.hi = 1;
那麼它總是更好,在運行時開銷少。在沒有它們的情況下,使用內存分配器功能通常沒有什麼優勢。
這取決於你在做什麼。只要看到這兩段代碼,就沒有實際的區別(除了動態分配的第一種情況,您不能忘記「釋放」內存)。 –
兩者都會爲你的結構分配內存,但malloc()會從堆中分配,mystruct測試將在堆棧上分配 –
它們非常有用,就像你希望你的程序實際產生某些東西而不是讓它私有計算本身(一個聰明的編譯器會優化爲無操作)。 ;-) – PSkocik