Passing dimensions of the array to function but still getting an error!
Code (You can directly scroll down to the error it gives and see only those lines in code)
class Solution {
public:
int mod = 1e9 + 7;
int checkRecord(int n) {
int dp[n + 1][2][3];
memset(dp, -1, sizeof(dp));
return helper(0, 1, 2, n + 1, 2, 3, dp);
}
int helper(int idx, int A, int startL, int N, int M, int K, int dp[N][M][K]) {
if(idx == N) return;
if(dp[idx][A][startL] != -1) {
return dp[idx][A][startL];
}
dp[idx][A][startL] = helper(idx + 1, A, 2, N, M, K, dp) % mod;
if(startL > 0) {
dp[idx][A][startL] += helper(idx + 1, A, startL - 1, N, M, K, dp) % mod;
}
return dp[idx][A][startL];
}
};
Error
error: cannot initialize a parameter of type 'int (*)[*][*]' with an lvalue of type 'int [n + 1][2][3]'
return helper(0, 1, 2, n + 1, 2, 3, dp);
^~
note: passing argument to parameter 'dp' here
int helper(int idx, int A, int startL, int N, int M, int K, int dp[][M][K]) {
^