我们都知道 malloc 返回已分配内存块的起始地址,但我想知道如何计算该 block 的结束地址
int *p, *q;
p=malloc(4*sizeof(int));
q=p+4;
现在 q
将指向结束地址 block ,但我想有一些其他方法来获取 malloc 分配的内存块的结束地址。
编辑
我想知道的另一件事是有什么方法可以确保我们在分配 block 的末尾
最佳答案
您不能使用标准技术,仅使用指针作为输入来确定 block 的末尾所在的位置。为了做到这一点。您将必须检测您的分配器或使用提供此类功能的分配器。
当您使用malloc
分配内存时,程序员有责任跟踪您分配了多少内存。您不能要求系统在稍后的某个时间点告诉您有关内存块的任何信息。
关于c - 如何计算 malloc 分配的内存块的结束地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8204299/