动态内存会被自动释放吗?
函数体内的局部变量在函数结束时自动消亡。
p 是局部的指针变量,它消亡的时候会让它所指的动态内存一起完蛋。这是错觉!
1 #include <iostream> 2 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 4 using namespace std; 5 int main(int argc, char** argv) { 6 //声明变量 7 int i,j; 8 float t,a[5]; 9 10 //从键盘上为数组赋值 11 for (i=0;i<=4;i++) 12 { 13 cout<<"a["<<i<<"]="; 14 cin>>a[i]; 15 } 16 17 //对数组按从大到小顺序排序 18 for (i=0;i<=3;i++) 19 for (j=i+1;j<=4;j++) 20 if (a[i]<=a[j]) 21 { 22 t=a[i]; 23 a[i]=a[j]; 24 a[j]=t; 25 } 26 27 //显示排序结果 28 for (i=0;i<=4;i++) 29 cout<<a[i]<<" "; 30 return 0; 31 }