#include <iostream>
int* fib(int);
int main()
{
int count;
std::cout<<"enter number up to which fibonacci series is to be printed"<<std::endl;
std::cin>>count;
int *p=new int[count];
p=fib(count);
int i;
for(i<0;i<=count;i++)
std::cout<<p[i]<<std::endl;
return 0;
}
int* fib(int d)
{
int *ar=new int[d];
int p=-1,q=1,r;
int j;
for(j=0;j<=d;j++)
{
r=p+q;
ar[j]=r;
p=q;
q=r;
}
return ar;
delete ar;
}
为什么我不能以这种方式打印整个Fibonacci系列阵列?
解决方法:
您的代码有几个问题
for(i<0;i<=count;i++)
实际上应该是
for(i=0;i<count;i++)
和
for(j=0;j<=d;j++)
必读
for(j=0;j<d;j++)
并删除线
delete ar;
因为它在return语句后没有任何作用.另外,您可以摆脱实例化
int *p=new int[count];
在main()中,因为这也是在您的fib函数中完成的.就目前而言,您泄漏了刚分配的内存.