SIGABRT error?

problem link: MATCHES Problem - CodeChef

my solution :

#include<iostream>
using namespace std;
enum Matches {One=2, Two=5, Three=5, Four=4,Five=5, Six=6, Seven=3, Eight=7, Nine=6, Zero=6 };
int main(){
    int TestCases{0};
    int noOfMatches{0};
    cin>>TestCases;
    int *Number1= new int(TestCases);
    int *Number2= new int(TestCases);
    int *Sum    = new int(TestCases);
    for (int i = 0; i < TestCases; i++) {
        cin>>Number1[i]>>Number2[i];
    }
    for (int i = 0; i < TestCases; i++) {
        Sum[i]=Number1[i]+Number2[i];
        while(Sum[i]!=0){
            switch (Sum[i]%10) {
                case 0: noOfMatches+=Zero;
                        Sum[i]/=10;
                        break;
                case 1: noOfMatches+=One;
                        Sum[i]/=10;
                        break;
                case 2: noOfMatches+=Two;
                        Sum[i]/=10;
                        break;
                case 3: noOfMatches+=Three;
                        Sum[i]/=10;
                        break;
                case 4: noOfMatches+=Four;
                        Sum[i]/=10;
                        break;
                case 5: noOfMatches+=Five;
                        Sum[i]/=10;
                        break;
                case 6: noOfMatches+=Six;
                        Sum[i]/=10;
                        break;
                case 7: noOfMatches+=Seven;
                        Sum[i]/=10;
                        break;
                case 8: noOfMatches+=Eight;
                        Sum[i]/=10;
                        break;
                case 9: noOfMatches+=Nine;
                        Sum[i]/=10;
                        break;

            }
        }
        if(Sum[i]==0){
            cout<<noOfMatches<<"\n";
            noOfMatches=0;
        }
    }
    delete [] Number1;
    delete [] Number2;
    delete [] Sum;
    return 0;
}