用析构函数后程序运行后无响应

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

#include<iostream>
using namespace std;
class function
{
private:
    float *pointer;
public:
    function(int count)
    {
        pointer = new float[count];
    }
    void save(int count);
    float ave(int count);
    ~function()
    {
        delete pointer;
    };
};
void function::save(int count)
{
    float content[20];
    int i;
    cout << "请输入要向指针空间储存的内容:";
    for(i=0;i<count;i++)
        cin >> content[i];
    pointer=content;
    cout << "储存成功!";
}
float function::ave(int count)
{
    int i;
    float sum=0, average;
    for (i = 0; i < count; i++)
    {
        sum += *(pointer + i);
    }
    average = sum / count;
    return average;


}
int main()
{
    int cou;
    cout << "请输入要为指针开辟的元素空间大小:";
    cin >> cou;
    function fun(cou);
    fun.save(cou);
    cout << "这些数的平均值为:" << fun.ave(cou) << endl;
    return 0;

}

运行结果及报错内容

程序无响应

我的解答思路和尝试过的方法
我想要达到的结果

27行 pointer=content;是不行的
你将new申请空间的指针指向了一个临时数组变量,最后delete指针是不可以的。你应该进行数据复制才行
27行改为:
memcpy(pointer,content,count*sizeof(float));

储存函数save()修改下:

void function::save(int count)
{
    //float content[20];
    int i;
    cout << "请输入要向指针空间储存的内容:";
    for(i=0;i<count;i++)
        cin>>pointer[i];
        //cin >> content[i];
    //pointer=content;
    cout << "储存成功!";
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632