Help Needed | Why is my code overflowing |

I passed the testcases, with some changes but i don’t understand why did my code overflow in the first place

class Solution {
public:
    int combinationSum4(vector<int>& nums, int k) 
         { 
         //dp[i] no of ways to get sum i
        long long int dp[100000];
        dp[0]=1;
        for(long long int i=1;i<=k;i++){dp[i]=0;}
        for(long long int i=1;i<=k;i++){
            //cout<<dp[i];
            for(auto x:nums){
                if(i>=x){
                    cout<<dp[i]<<"\n";
                    dp[i]=dp[i]+dp[i-x];
                }
            }
        }
        return dp[k];
    }      
};

Probably because in your function definition, you are returning an int instead of long long.