#include <stdio.h>
#include <string.h>
main()
{
int an_int;
void *void_pointer = &an_int;
double *double_ptr = void_pointer;
*double_ptr = 10;
printf("%d", sizeof(*double_ptr));
}
该程序的输出为8.
这是怎么发生的?
我的意思是double_ptr指向4字节的内存,但仍然输出为8。
* 其他4字节从哪里来?该程序应该崩溃,因为其他4个字节未分配给它。 *
请解释??int指针变为void指针,然后变成双指针
旁注:打印“size_t”类型的值时应使用'%zu'。 – user694733