free崩溃的原因
1、越界;
2、指针移动找不到头;
3、重复释放内存;
4、释放了不是动态创建的内存;
/*//free崩溃的第四个原因:释放不是动态创建的内存
int main()
{
int a = 10;
free(&a);
return 0;
}
*/
/*free崩溃的第三个原因:重复释放内存
int main()
{
int *p = (int *)malloc(10*sizeof(int));
int *q = p;
free(p);
free(q);
return 0;
}
*/
/*
//free崩溃的第二个原因:指针移动
int main()
{
int *p = (int *)malloc(10*sizeof(int));
for(int i=0;i<10;i++)
{
*p = 0;
p++;
}
free(p);
return 0;
}
*/
/*free崩溃的第一个原因:越界
int main()
{
int *p1 = (int *)malloc(20);
for(int i=0;i<20;i++)
{
p1[i] = 0;
}
free(p1);
return 0;
}