以下をコンパイルすると、最初の「cout」のみが正しく機能します。
void * functionname()
{
int i[3]={1,2,3};
int *p = i;
return p;
}
int main()
{
int *p = new int[3];
p= (int *)functionname();
std::cout<<p[1]<<"\n";
std::cout<<p[1]<<"\n";
std::cout<<p[2]<<"\n";
std::cout<<p[2]<<"\n";
std::cout<<p[3]<<"\n";
std::cout<<p[3]<<"\n";
delete [] p;
return 0;
}
何が問題なのか教えてください。