1.c语言中,i<=10,会运算11次,导致越界
但是在c++中,现在好像已经不报错了。
int main()//free崩溃情景1
{
int *p = (int *)malloc(10*sizeof(int));
for(int i=0;i<=10;i++)
{
p[i] = 0;
}
free(p);
return 0;
}
2.修改了指针的指向,p++。
c++中也崩溃异常。
int main()//情景2
{
int *p = (int *)malloc(10*sizeof(int));
for(int i=0;i<10;i++)
{
*p = 0;
p++;
}
free(p);
return 0;
}
3.重复释放同一段内存。
c++中已经不报异常了。
int main()//情景3
{
int *p = (int *)malloc(10*sizeof(int));
for(int i=0;i<10;i++)
{
p[i] = i;
}
int *q = (int *)malloc(20*sizeof(int));
for(int i=0;i<10;i++)