我有这个C代码:
int main()
{
int *p=(int *)malloc(100); //100 bytes
for(int i=0;i<10;i++)
{
p++;
}
free(p);
return 0;
}
现在我的问题是释放(p)所有100个字节还是只释放90个字节。free()如何知道要释放多少字节。。?
这是非法的。
free
的参数必须是由malloc
或其表亲返回的指针,或者是空指针。在您的示例中,p
已将其值更改为p++
。