C语言程序出现malloc

C语言程序出现malloc,第1张

malloc(): corrupted top size

** 关于C语言程序运行过程中突然出现:
malloc():corrupted top size
Aborted (core dumped) **

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BSe2BojJ-1649812145525)(C:\Users\30234\AppData\Roaming\Typora\typora-user-images\image-20220413085314897.png)]
我出现问题的地方是结构体在使用MAXSIZE设置的太小了,不能存储代码生成的数据,造成访问越界错误。


解决方法

1.检查malloc申请的内存,在访问的时候是否越界访问了
2.找到出现越界的内存块,扩大申请的内存块大小
我的出现问题的地方的定义结构体时,将内部数组的MAXSIZE设置的太小了,更改数值后,问题解决

错误示例
#include
#include
#define MAXSIZE 10

int main()
{
        int* a = malloc(sizeof(int )*MAXSIZE);
        for(int i = 0; i < 15; ++i) {
                a[i] = i;
        }
        for(int i = 0; i < 15; ++i){
                printf("%d\n", a[i]);
        }
        free(a);
        return 0;
}

注意:不要越界访问内存

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/634440.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-16
下一篇 2022-04-16

发表评论

登录后才能评论

评论列表(0条)

保存