This question asks what is the dynamic type of the object allocated by malloc
and according to the top answer:
The return value of malloc
is a block of uninitialized storage. No object has been constructed within that storage. And therefore it has no dynamic type.
This brings another question: at what point does it make sense to say that the storage returned by malloc
gets a type. For example:
void *p = malloc(sizeof(int));
int *pi = (int*)p;
can we say that pi
above points to an object of dynamic type int
despite the fact that it is uninitialized?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…