3 ms·
In C you could write or have a macro which does the cast. int *p = malloc(sizeof *p); In C++ you would have to add an explicit cast, which would not make it
by uecker 4y ago
In C you could write or have a macro which does the cast.
int *p = malloc(sizeof *p);
In C++ you would have to add an explicit cast, which would not make it safer:
int *p = (int*)malloc(sizeof char);
So from a type system perspective this is not safer.
- zabzonk 4y agoit is safer. because you have to make the explicit cast, which either the compiler or a linter can, and should, warn you about. and your post does not illustrate a macro. and if it did, the compiler/linter could diagnose it.
- uecker 4y agoThis is the fallacy: A cast does not make code safer you have to use it for regular code that has no issue. Because a linter warning about that is just noise. By example illustrated a bug in the C++ code hidden by the cast.