gpt4 book ai didi

c - C 中结构的 malloc 异常

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:33 24 4
gpt4 key购买 nike

我有一个这样定义的结构:

typedef struct {
int n;
int *n_p;
void **list_pp;
size_t rec_size;
int n_buffs;
size_t buff_size
} fl_hdr_type;

在我的代码中,我有一个初始化函数,它具有以下内容

fl_hdr_type *fl_hdr;
fl_hdr = malloc(sizeof(fl_hdr_type) + (buff_size_n * rec_size_n));

这些缓冲区大小被传递给函数,以便为缓冲区留出空间。

大小通常很小..100*50 或类似的东西..这个系统上有足够的内存来分配它。我实际上无法发布堆栈跟踪,因为此代码位于另一个网络上,但从核心文件上的 dbx 中提取了一些信息:

buff_size_n = 32,rec_size_n = 186

和来自 malloc.c 的堆栈..行号

 t_splay:861
t_delete:796
realfree: 531
cleanfree:945
_malloc:230
_malloc:186

知道为什么会失败吗?

最佳答案

尝试通过 valgrind 运行你的程序,看看它报告了什么。您可能在程序的其他部分损坏了空闲列表或 malloc 查看的其他内容。

关于c - C 中结构的 malloc 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2715454/

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