Ho fatto questo esercizio ma non riesco a farlo funzionare, mi date una mano?

Si scriva in C++ una funzione RICORSIVA che, ricevuti come parametri (almeno) tre array di caratteri, A B e C, e la loro dimensione, riempia C incastrando ad incrocio i caratteri presenti in A e B come descritto di seguito. Ogni coppia di elementi consecutivi in C deve essere formata da un carattere di A e da uno di B; gli elementi di A vanno usati da sinistra verso destra( cioè prima il primo, poi il secondo e così via) mentre gli elementi di B devono essere usati da destra verso sinistra (ossia, prima l’ultimo, poi penultimo, ecc.). Pertanto, la prima coppia di elementi in C sarà formata dal primo carattere di A e dall’ultimo in B, la seconda coppia in C, conterrà, il secondo elemento di A ed il penultimo di B e così via, finché tutti i caratteri di A e di B saranno stati considerati.
Si noti che, perché l’incastro sia fattibile, gli array A e B devono avere la stessa dimensione n, mentre la dimensione di C deve essere 2*n. Se la funzione riceve come parametri array le cui dimensioni non rispettano queste condizioni, l’incastro non deve essere effettuato e la funzione deve terminare restituendo false.
codice:
 
  A                     B                    C
VERDE             ROSSO              VOESRSDOER
                                                                          
        
ESEMPIO: Dati gli array A e B riportati sopra, la funzione dovrà 
riempire l’array C come illustrato in figura e terminerà restituendo true.
La mia soluzione:
codice:
bool incastro(char A[], int dim, char B[], int dim, char C[],  int dimC, int i){
       if(dimC!=dim*2)
       return false;
       
       if(A[i]==dim)
       return true;
       C[i]=A[i];
       C[i]=B[i];

incastro(A, dim, B, dim-1, C, dimC, i+1);
}