** 关于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;
}
注意:不要越界访问内存
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)