内存泄漏问题
想的是输入任意长度的数排序后把相同的元素删除
整个代码是这样的
程序代码:
#include "stdafx.h" using namespace std; class ARR { int m; //数组实际元素个数 int a[100]; //存放原始数组以及结果数组 int t[100]; //存放每个数据重复次数 public: ARR(int c[],int size) { m=size; for(int i=0;i<m;i++) { a[i]=c[i]; t[i]=0; } } void stl(); //把数组元素从小到大排序 void delsame(); //完成数组a中相同元素的删除工作 以及统计重复次数工作 void show() //输出数组 { for(int i=0;i<m;i++) { cout<<a[i]<<" "; } cout<<endl; } void showT() { for(int i=0;i<m;i++) { cout<<a[i]<<"出现了 "<<t[i]<<"次"; if(((i+1)%3)==0) cout<<endl; } } }; void ARR::stl() //类外定义函数 完成数组排序工作 { int i,j,temp; for(i=0;i<m-1;i++) { for(j=i+1;j<m-1;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } } }; void ARR::delsame() //在类的外部定义函数,完成数组a中相同元素的删除工作 { int i,j; for(i=0;i<m-1;i++) { t[i]+=1; //统计该元素出现次数 if(a[i]==a[i+1]) { for(j=i+1;j<m-1;j++) { a[j]=a[j+1]; } m--; i--; } } }; int _tmain(int argc, _TCHAR* argv[]) { int b[100]; int i; cout<<"请输入一组整数,数量在100以内"<<endl; for(i=0;i<100;i++) { cin>>b[i]; if(b[i]=='p') break; } ARR v(b,i); v.show(); v.delsame(); v.show(); v.showT(); return 0; }