p1=(int *)malloc(sizeof(int))用不用对语句的影响

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:45:54
谢谢

在了解这句话的含义之前,先说明一下C中‘堆’和‘栈’的概念,‘栈’ 是用来用存放局部变量和型参的,随着程序运行结束自行释放。而‘堆’ 是我们自己手动申请的空间,程序结束之前必须由我们自己通过free手动释放,不然会发生空间泄露的问题, malloc申请空间是申请堆上的空间,此函数返回的值是void* 的指针,所以我们在前面加上了int*的类型转换,以得到一个int型的指向堆空间的指针。此指针所指向的值存储在堆上,可以动态生成。

这语句就是开辟一个整型字节的空间,其实从这个地址开始后续的空间都可以存储int类型数据,以P1指针遍历即可。
while(num--)
{
*p1 = (int)varible++;
}