I know I should not use c and c++ at the same time.
Can someone say why the above code are working using new? The purpose is to remove the central character of an word given by keyboard ex: "abcde" to "abde"
I was asking if the creation of VLA is correct or not... apparently it returns what I want BUT the same main code without the other functions crashes.
I searched throw internet and I discovered that I should initialize the size ('n' in my case) of the VLA's.
Code using functions and new:
#include <stdio.h>
#include <string.h>
int citirea_sirului(char *s1, char *s2)
{
    int d;
    printf("Cuvantul: ");
    gets(s1);
    d=strlen(s1);
    for(int i=0;i<d;i+=1)
    {
        *(s2+i)=*(s1+i);
    }
    return d;
}
void prelucrarea_afis_siruluiC(char *b, int d, char *a){
    strcpy(a,b+(d/2)+1);
    strcpy(b+(d/2),"");
    strcat(b,a);
    puts(b);
}
int main(){
    int n;
    char *cuv,*ccuv;
    cuv=new char[n];
    ccuv=new char[n];
    n=citirea_sirului(cuv,ccuv);
    printf("Dimensiunea Cuvantului: %d\n",n);
    printf("\nSir prelucrat: \n");
    prelucrarea_afis_siruluiC(ccuv,n,cuv);
    delete[] ccuv;
    delete[] cuv;
    return 0;
}
Code without functions:
#include <stdio.h>
#include <string.h>
int main(){
    int n;
    char cuv[n], ccuv[n];
    printf("Cuvantul: ");
    gets(cuv);
    n=strlen(cuv);
    printf("Dimensiunea Cuvantului: %d",n);
    for(int i=0;i<n;i++)
    {
        ccuv[i]=cuv[i];
    }
    strcpy(cuv,cuv+(n/2)+1);
    strcpy(ccuv+(n/2),"");
    strcat(ccuv,cuv);
    printf("\nCuvantul prelucrat: %s",ccuv);
    return 0;
}
 
    