gpt4 book ai didi

我可以通过引用偏移指针来 free() 吗?

转载 作者:太空狗 更新时间:2023-10-29 15:53:29 30 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Does the pointer passed to free() have to point to beginning of the memory block, or can it point to the interior?

我正在使用 malloc() 在堆上分配一些内存。我正在为指针添加一个偏移量并将其返回给调用函数 return ptr+(sizeof(char)*4)),其中此返回值存储在 ptrReturned 中,例如。

最大的问题是,当我free(ptrReturned)(从分配 block 的开头偏移sizeof(char)*4)时,整个 block 被释放还是会释放从偏移量到分配 block 末尾的内存?我使用的编译器是 MSVC++2008。

如果分配的地址存储在一个链表中,并且有指向前一项的指针,那么它应该释放整个 block 从前一个指针为 NULL 到下一个指针为 NULL 的位置,对吗?

我试过调试和观察内存,但我无法让它覆盖释放的 block 空间。有没有一种方法可以明确地尝试在定义的地址处在堆上分配空间,并且可能会在尝试分配已经分配的内存时出现异常?这样我就能知道,当然,如果没有更简单的答案。

我希望问题很清楚,如果我缺少某些信息,请在评论中告诉我。谢谢。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com