C++ 关于数组输出的一个简单问题

/*写了两个函数代替数组在主程序里的输入与输出,但是好像不能display数组a,为什么呢,改怎么改才能display我input的数组呢?*/
#include "stdafx.h"
#include
using namespace std;

void input(float*v,int length)
{
    cout<<"请输入数组长度及对应长度数组:";
    cin>>length;
    for(int i=0;i<length;i++)
    cin>>v[i];

}

void display(float*v,int length)
{
 int i=0;
 for(i=0;i<length;++i)
    cout<<v[i]<<"\t";
 cout<<endl;
}

int main(int argc, char* argv[])
{
    int length;
    float*a;
    input(a,length);
    display(a,length);
 system ("pause");
 return 0;
}

1.你需要用引用传参的方式才能在input函数里修改main函数里的a和length
2.必须为数组分配空间

 #include "stdafx.h"
#include<iostream>
using namespace std;

void input(float *&v,int &length)
{
    cout<<"请输入数组长度及对应长度数组:";
    cin>>length;
    v = new float[length];
    for(int i=0;i<length;i++)
        cin>>v[i];

}

void display(float*v,int length)
{
    int i=0;
    for(i=0;i<length;++i)
        cout<<v[i]<<"\t";
    cout<<endl;
}

int main(int argc, char* argv[])
{
    int length;
    float *a = NULL;
    input(a,length);
    display(a,length);
    system ("pause");
    return 0;
}

图片说明