gpt4 book ai didi

Calloc 提供一个从已分配内存内部开始的指针?

转载 作者:太空宇宙 更新时间:2023-11-04 01:40:43 27 4
gpt4 key购买 nike

我遇到了某种指针冲突,

基本上,在我做的一个函数中,

a = calloc(1,28); // gives me 0x100100d10

然后很快在我做的一个子函数中,

b = calloc(1,16); // gives me 0x100100d20;

第一个地址 + 28 是 0x0..d2C,即扩展了第二个 calloc 中提供的指针...

这是怎么回事?

指针值来自 printf,而不是 gdb。

最佳答案

如果这确实如您所描述的那样发生,那么您已经通过在分配 block 的边界之外写入(或者甚至可能通过使用未初始化的指针或指向已释放内存的指针)破坏了堆,从而调用未定义的行为。 valgrind 工具可能可以帮助您追踪问题,或者如果您的程序不是太大,您可以简单地手动搜索无效指针的使用。

关于Calloc 提供一个从已分配内存内部开始的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5980482/

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