簡體   English   中英

釋放動態分配的內存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM