内存出现的问题
free报错
事故现场1
2
3
4
5
6
7
8
int
main(){
void* ptr = malloc(2014);
ptr = ptr + 3;
free(ptr);
return;
}
这段代码先申请一段2014 bytes的空间,然后free +3地址
错误信息
类似的1
2
3
4
5
6
7
8
int
main(){
int a = 3;
int* ptr = &a;
free(ptr);
return;
}
直接free了一个栈地址,也会直接报错
总的来说,都是invalid pointer
在测试中,还发现了了其他错误1
2
3
4
5
6
7
int
main(){
void* ptr = malloc(2014);
free(++ptr);
return;
}
具体原因先参考
malloc报错
在某一次使用堆时,使用了过量内存,导致了这个内存鼓掌,malloc都不让了= =,后续再看下