Возвращение указателя из функции в C ++

Когда я возвращаю указатель из функции, к его значению можно получить доступ по отдельности. Но когда для вывода значения этой переменной указателя используется цикл, отображается неправильное значение. Где я делаю ошибку, не могу понять это.

#include <iostream>
#include <conio.h>

int *cal(int *, int*);

using namespace std;

int main()
{
    int a[]={5,6,7,8,9};
    int b[]={0,3,5,2,1};
    int *c;
    c=cal(a,b);

    //Wrong outpur here
    /*for(int i=0;i<5;i++)
    {
        cout<<*(c+i);
    }*/

    //Correct output here
    cout<<*(c+0);
    cout<<*(c+1);
    cout<<*(c+2);
    cout<<*(c+3);
    cout<<*(c+4);

return 0;
}   

int *cal(int *d, int *e)
{
    int k[5];
    for(int j=0;j<5;j++)
    {
        *(k+j)=*(d+j)-*(e+j);
    }
    return k;
}

Ответы на вопрос(3)

Ваш ответ на вопрос