DLL function calls with multiple 'char&[]' parameters crash

 
//dll side
DLLEXPORT unsigned int funcok(char *_s)
{
	return 0;
}
DLLEXPORT unsigned int testfunc(char *_s0,char *_s1,char *_s2,char *_s3,char *_s4)
{
        return 0;
}

//mql5 side
#import "mylib.dll"
unsigned int funcok(char &_s[]);
unsigned int testfunc(char &_s0[], char &_s1[], char &_s2[], char &_s3[], char &_s4[]);
#import

int OnInit(void)
{
        char s0[128],s1[128],s2[128],s3[128],s4[128];
	funcok(s0); //<- ok
        testfunc(s0,s1,s2,s3,s4); //<-crash
        return(INIT_SUCCEEDED);
}

 I'm developing some dll that modify string data that would be passed from MT5.

 I read this article and tried but behavior is different from explanation.

 

 In above example, single parameter function works fine but the function has multiple 'char&[]' parameters crashes.


 Am I misunderstanding MQL5 specifications ?