关于malloc函数:【C语言 int * p;p = (int *)malloc(sizeof(int));作用与意思】
在这里,p = (int *)部分是说,将申请一个大小为int型大小的内存空间,并且返回地址,且把其地址强制转化成int*类型的。
在这里,malloc(sizeof(int))部分是说,用malloc函数动态分配一个整形的内存空间,sizeof()是单目运算,求出对应类型所占用的字节数(类型名)为单目运算。在强制类型转换要注意的是malloc()函数申请得到的空间是无类型的空间,必须强制转换成对应指针可这指向的空间的类型, 这里定义的是int *p 所以p指针只能指向int型空间sizeof(int) 求得int类型所占的字节数malloc(sizeof(int)) 申请一个跟int所占的空间大小一样的空间(int*)malloc(sizeof(int)) 将申请得到的空间地址转换成了int类型空间地址最后就可以赋值给指向int型空间的p指针了。
切记!malloc以后记得要 free ();不燃就会导致内存的浪费。
int* p; p = (int *) malloc (sizeof(int)*100); 分配了100个int的空间
int* p; p = (int *) malloc (sizeof(int));分配了 1个int 空间。
这两个是:一个是分配4个字节,一个是分配4*100个字节。