[英]free with dynamically allocated memory
我有這個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++
更改了其值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.