| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 542 人关注过本帖
标题:内存泄漏问题
只看楼主 加入收藏
liang890806
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2009-7-28
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:5 
内存泄漏问题
想的是输入任意长度的数
排序后把相同的元素删除
整个代码是这样的
程序代码:
#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;
}

搜索更多相关主题的帖子: 内存 泄漏 
2009-09-11 11:04
liang890806
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2009-7-28
收藏
得分:0 
输出数组的时候会出现内存泄漏
2009-09-11 11:05
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:14 
都没new,哪来泄漏。
2009-09-11 12:32
liang890806
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2009-7-28
收藏
得分:0 
是这样的。。
我输入1 2 3 4 5 6
会输出 1 2 3 4 5 6  -85993460  -85993460  -85993460  -85993460  -85993460  -85993460  -85993460  -85993460  -85993460  -85993460  -85993460  -85993460  -85993460
  -85993460  -85993460  -85993460  -85993460  -85993460  -85993460。。。。。。。。。 后略

2009-09-11 12:38
xufen340
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:166
专家分:1351
注 册:2009-8-7
收藏
得分:0 
那不叫泄漏,那叫超上下限访问
2009-09-11 12:50
liang890806
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2009-7-28
收藏
得分:0 
哦哦
这样
谢谢。。我是新手 嘿嘿

那怎么解决呢
麻烦帮下忙
2009-09-11 13:05
快速回复:内存泄漏问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019354 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved