0
点赞
收藏
分享

微信扫一扫

C语言程序出现malloc(): corrupted top size异常中止

云朵里的佛光 2022-04-14 阅读 370
c语言

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<stdio.h>
#include<stdlib.h>
#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;
}

注意:不要越界访问内存

举报

相关推荐

0 条评论