这个代码运行出来为什么会出错

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include<iostream>
#include< cstdlib >
using namespace std;
int main()
{
    int T;
    bool flag = 0;
    cin >> T;
    for (int i = 0; i < T; i++)
    {
        int *a =(int*) malloc(sizeof(int));
        int k=0;
        int* res = (int*)malloc(sizeof(int));
        for(int k=0;;k++)
        {
            cin >> a[k];
        if (getchar() == '\n')break; 
        }
        
        for (int h = 0; h < k - 1; h++)
        {
            res [h]= a[h + 1] - a[h];
        }
        for (int o = 0; o < k - 1; o++)
        {
            for (int u = 0; u < k-1-o; u++)
            {
                if (res[o] > res[o + 1])swap(res[o], res[o + 1]);
            }
        }
        for (int h = 0; h < k - 1; h++)
        {
            if (res[h] != h + 1)
                flag = 1;
            cout << res[h] << endl;
        }
        if (flag == 0)
            cout << "Jolly"<<endl;
        else
            cout << "Not jolly"<<endl;
        free (a);
        free(res);
        
    }
}