c++ – heap-buffer-overflow error leetcode question

I tried partition-equal-subset-sum problem on leetcode. But getting heap-buffer-overflow error.
I don’t think my code is going out of bound.

I am attaching link for the question : leetcode.com/problems/partition-equal-subset-sum/
As well as the code itself.

bool subset(vector<int>& nums, int sum) {
    int n = sizeof(nums);
    bool dp[n+1][sum+1];
    for(int i=0;i<=n;i++){
        for(int j=0;j<=sum;j++){
            if(i==0){
                dp[i][j]= false;
            }
            if(j==0){
                dp[i][j]= true;
            }
        }
    }
            
    for(int i=1;i<=n;i++){
        for(int j=1;j<=sum;j++){
            if(nums[i-1]<=j){
                dp[i][j] = dp[i-1][j-nums[i-1]] || dp[i-1][j];
            }
            else if(nums[i-1]>j){
                dp[i][j] = dp[i-1][j];
            }
        }
        
    }
return dp[n][sum];
}
bool canPartition(vector<int>& nums) {
    int sum = 0;
    int n = sizeof(nums);
    for(int i=0;i<=n;i++){
        sum = sum + nums[i];
    }
    if(sum %2 !=0){
        return false;
    }
    else{
        return subset(nums,sum/2);
    
    }
}

Read more here: Source link