我有这个C代码:
int main()
{
int *p=(int *)malloc(100); //100 bytes
for(int i=0;i<10;i++)
{
p++;
}
free(p);
return 0;
}
现在我的问题是free(p)将释放所有100个字节或仅释放90个字节。free()如何知道有多少字节要释放..?
这是非法的。
的参数free
必须是由malloc
或其表亲返回的指针,或者为空指针。在您的示例中,p
将的值更改了p++
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句