提问者:小点点

从“int”到“int*”CPP的转换无效


#include <iostream>
#include <cstring>
#include<bits/stdc++.h>

using namespace std;

int static t[1000][1001];
int solve(int arr[],int i, int j)
{
    if(i>=j)
        return 0;
    if(t[i][j]!=-1)
        return t[i][j];
    int mini=INT_MAX;
    for(int k=i;k<=j-1;k++)
    {
        int temp=solve(arr,i,k)+solve(i,k+1,j)+(arr[i-1]*arr[k]*arr[j]);
        if(temp<mini)
            mini=temp;

    }
    return t[i][j]=mini;
}
int main()
{
    memset(t,-1,sizeof(t));
    int arr[]=[20,30,40,10,60,90];
    solve(arr,1,sizeof(arr))


}

以上代码是动态规划中MCM代码

我得到的错误消息是从“int”到“int*”的转换无效,这意味着什么以及如何解决这个错误


共1个答案

匿名用户

表达式solve(i,k+1,j)是错误的-solve函数需要一个指向int的指针作为它的第一个参数,该参数应该指向数组,但您只传递了一个整数i