关于动态数组的一个问题
下面是自己写的一个程序,为什么加入“delete [] p;”后会出错?求教大神
#include<iostream>
using namespace std;
//秦九韶算法
int main()
{
int n;
float *p,value,x;
cout << "输入多项式的次数: ";
cin >> n;
p = new float[n];
cout << "输入多项式系数:";
for( int i=0;i<=n;++i)
cin >> p[i];
value=p[0];
cout <<"输入x:";
cin >> x;
for(int i=1;i<=n;++i)
value=value*x+p[i];
cout << "多项式的值:" << value;
//delete [] p;
return 0;
}
[解决办法]
#include<iostream>using namespace std;//秦九韶算法int main(){int n;float *p,value,x;cout << "输入多项式的次数: ";cin >> n; p = new float[n];cout << "输入多项式系数:"; for( int i=0;i<n;++i)//把=等号去掉,你数组越界了cin >> p[i];value=p[0];cout <<"输入x:";cin >> x;for(int i=1;i<=n;++i)value=value*x+p[i];cout << "多项式的值:" << value;delete [] p;return 0;}
[解决办法]
#include<iostream>using namespace std;//秦九韶算法int main(){ int n; float *p,value,x; cout << "输入多项式的次数: "; cin >> n; p = new float[n+1]; //多加一位 cout << "输入多项式系数:"; for( int i=0;i<=n;++i) cin >> p[i]; value=p[0]; cout <<"输入x:"; cin >> x; for(int i=1;i<=n;++i) value=value*x+p[i]; cout << "多项式的值:" << value; delete [] p; return 0;}