invalid conversion from 'char' to 'char*'

想写一个把一个数组挨个插入到另一个数组中间,然后比较他们的值找最大值的程序,但是出现如题的错误error: invalid conversion from 'char' to 'char*' [-fpermissive],请问各位大神这是错在哪里了啊,怎么修改嘞

#include <iostream>
#include <cstring>
using namespace std;
using std::string;
//void compareNum(char n[]);
int inse(char s1[] ,char s2[],int index);
int main()
{
    int n1,n2;
    int max=0;
    cout<<"要输入几位基准数:";
    cin>>n1;
    cout<<"要输入几位插入数:";
    cin>>n2;
    char s1[n1];
    char s2[n2];
    cin.getline(s1,n1);
    cin.getline(s2,n2);
    for(int index=0;index<n1;index++){
        max=inse(s1[n1],s2[n2],index);
    }
    cout<<max<<endl;
    return 0;
}

int inse(char s1[] ,char s2[],int index)
{
    int n1=strlen(s1),n2=strlen(s2);
    for(int i=index;i<n1;i++){
        s1[i+n2]=s1[i];
    }
    if(n2==1){
        s1[index]=s2[0];
    }else if(n2==2){
        s1[index]=s2[0];
        s1[index+1]=s2[1];
    }
    int newNum = *(int*)s1;A
    int max=0;
    if(newNum > max)
        max = newNum;
    return max;
}

 

1) 仔细写程序,不要慌里慌张。  用代码模块。 

#include <iostream>
#include <cstring>
using namespace std;
using std::string;
//void compareNum(char n[]);
int inse(char s1[] ,char s2[],int index);
int main()
{
    int n1,n2;
    int max=0;
    cout<<"要输入几位基准数:";
    cin>>n1;
    cout<<"要输入几位插入数:";
    cin>>n2;
    char s1[n1];
    char s2[n2];
    cin.getline(s1,n1);
    cin.getline(s2,n2);
    for(int index=0;index<n1;index++){
        max=inse(s1[n1],s2[n2],index);
    }
    cout<<max<<endl;
    return 0;
}

int inse(char s1[] ,char s2[],int index)
{
    int n1=strlen(s1),n2=strlen(s2);
    for(int i=index;i<n1;i++){
        s1[i+n2]=s1[i];
    }
    if(n2==1){
        s1[index]=s2[0];
    }else if(n2==2){
        s1[index]=s2[0];
        s1[index+1]=s2[1];
    }
    int newNum = *(int*)s1;A
    int max=0;
    if(newNum > max)
        max = newNum;
    return max;
}

两个明显错误:

char s1[n1]; char s2[n2];    //不能这样动态声明数组, 要用 malloc()

s1; A     //这个 A 是多余的。 

你把这些问题解决了再来提问。