#include <stdio.h> #include <malloc.h> int main(void){ int *p; int *a; a = (int*)malloc(sizeof*p); *a=1; printf("%d\n",*a); free(a); return 0; }
上面这段代码,编译运行都没有任何问题。
a = (int*)malloc(sizeof*p);
一般主要是对上面这行代码有疑问,查阅相关资料,sizeof的用法如下:
1、用于数据类型
sizeof使用形式:sizeof(type)
数据类型必须用括号括住。如sizeof(int)。
2、用于变量
sizeof使用形式:sizeof(var_name)或sizeof var_name
变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。