首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Munmap_chunk():指针无效

Munmap_chunk():指针无效
EN

Stack Overflow用户
提问于 2020-04-21 22:30:41
回答 1查看 89关注 0票数 0

在头文件中声明

代码语言:javascript
复制
typedef struct htab {
size_t size;
size_t arr_size;
struct htab_item *arr[];
}htab_t;

并具有函数

代码语言:javascript
复制
htab_t *htab_init(size_t)
{
   htab_t *table = malloc(sizeof(htab_t)+n*(sizeof(struct htab_item*)));
   if (table == NULL)
   {
       fprintf(stderr,"Error: allocation failed\n");
       return NULL;
   }

在malloc行,它抛出错误:munmap_chunk():invalid pointer谁能解释为什么会发生这种情况吗?编辑:n代表struct中arr的大小,我通过gdb运行了这段代码,当这行代码到达这个malloc时,它会抛出我,并指出指针错误,所以它甚至不能到达函数"free“。

EN

回答 1

Stack Overflow用户

发布于 2020-04-21 23:03:24

正在发生的情况是,malloc库代码通常直到程序的后面才意识到它已经损坏了数据结构。因此,崩溃或错误消息的位置并不总是与实际错误相对应。

Glibc通过环境变量启用了malloc调试模式,但我发现valgrind在各个方面都更有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61346041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档