问题
Can someone please explain to me the difference between
int *x = malloc(sizeof(int));
&&
int *x = (int*)malloc(sizeof(int));
Thanks!
回答1:
The difference is that you are casting the return of malloc()
in the second example. malloc()
returns a void*
pointer, which is automatically and safely promoted to any other pointer type in this case.
Therefore casting in this case is not required and should not be done. Check here.
来源:https://stackoverflow.com/questions/33798608/c-pointer-memory-allocation