( utpKabel | 2014. 05. 07., sze – 17:22 )

Válasz djszapi üzenetére

"a typedef is eleg lenne, es new mytypedef"
"Hat meglepo, hogy ez Teged ujonnan ert, hogy nem kell explicit castolas"

Jól elbeszélgetsz magaddal, én egy szóval nem említettem az explicit castolást, hanem a típus kiírásáról beszéltem. new mytypedef ugyanúgy a típus kiírása, mint a (mytypedef *) malloc(...).

Arról volt szó, hogy C++-ban a decltype bevezetéséig heap allokációnál még egyszer ki kellett írni a típust. Így a következő kódban:

Foo *p;
p = new Foo;

ha p típusát megváltoztatod, akkor két helyen kell átírni a típust, míg a C-s változatban csak egy helyen:

struct foo *p;
p = malloc(sizeof(*p));