#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 << "储存成功!";
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!