dev c++ – Se debe almacenar caracteres en una matriz de 3×4, después verificar cuantos caracteres son mayúsculas minúsculas digitos o especiales. Error línea 49

Error en la linea 49,(Error) invalid conversion from ‘int’ to ‘int (*)(4)’ (-fpermissive)

Ademas en codigos elaborados anteriormente siguiendo el mismo proposito de este codigo, los caracteres siendo letras mayusculas o minusculas o numeros, estos se almacenaban como si fuesen caracteres especiales

Cabe recalcar que mis conocimientos sobre programación son pocos ya que voy en 2do semestre de preparatoria

#include <conio.h>
#include <windows.h>
#include <stdio.h>
using namespace std;
void gotoxy(int x, int y);
void Presenta(int Mayus()(4),int Minus()(4),int Dig()(4),int Esp()(4));
void Ident(char Cadena(),int L);
const char Letrero()="Identificar el tipo de caracter.";
int main(){
    int J,I,L;
    char Cadena(3)(4);
    system("cls");
    gotoxy(20,1);printf("%s",Letrero);

    for(J=0;J<=3;J++)
    {
        gotoxy(20+J,5);printf("Rellene el vector %d: ",J);
        for(I=0;I<=4;I++)
        {
            gotoxy(20,5+I);printf("Rellene el vector %d: ",J);
            gotoxy(20,5+I);printf("Inserte la palabra %d: ",I);
            gotoxy(20,7+I);scanf("%s",Cadena(I)(J));
            int L=strlen(Cadena(I));
        }
    }

    Ident(Cadena(I),L);
    return 0;
}
void Ident(char Cadena()(4),int L)
{
    int Mayus=0,Minus=0,Dig=0,Esp=0,I,J;

    for(I=0;I<=3;I++)
    {
    for(J=0;J<=4;J++)
    {
    if((Cadena(I)(J)>='A')&&(Cadena(I)(J)<='Z'))
    Mayus++;
    if((Cadena(I)(J)>='a')&&(Cadena(I)(J)<='z'))
        Minus++; 
        if((Cadena(I)(J)>='0')&&(Cadena(I)(J)<='9'))
            Dig++;    
            else
            Esp++;
    }
    }
    Presenta(Mayus,Minus,Dig,Esp);//aqui se presenta el error
}
void Presenta(int Mayus()(4),int Minus()(4),int Dig()(4),int Esp()(4))
{
    int I;
    for(I=0;I<=3;I++)
    {
    gotoxy(20,4+I);printf("Mayuscula:%i",Mayus(I));
    gotoxy(20,5+I);printf("Minuscula:%i",Minus(I));
    gotoxy(20,6+I);printf("Digito:%i",Dig(I));
    gotoxy(20,7+I);printf("Especial:%i",Esp(I));
    }
    gotoxy(20,20);printf("Presiona ENTER para SALIR");
    getche();
}
void gotoxy(int x, int y)
{   HANDLE hCon;
    hCon=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD dwPos;
    dwPos.X=x;
    dwPos.Y=y;
    SetConsoleCursorPosition(hCon,dwPos);
}

No ha sido posible compilar el codigo aún, así que posiblemente se presenten errores de logica.