CString二位数组格式化Format时报错

struct _Con
{
    TCHAR strPROName[200];

    int Robot_Sum;
    TCHAR strRobotID[3][20];  //RobotID_1   
    CString strWL_PN[3][20];    //一维代表料仓,该数组必须放在CHAR chRobotIP[3][50]之前,否则程序会在format处报错,具体原因不详

    CHAR chRobotIP[3][50];    //RobotIP_1   
    int RobotPort;  
}Con;



Con.strWL_PN[i][j].Format(_T("%s"),strWL_PN);   //strWL_PN为123,是CString型数据。

经验证,Format给其他全局的二维CString数组,和只有一个CString数组的结构体是没有问题,Format给局部变量也是没有关系的
后来发现,如注释,CString strWL_PN[3][20];的位置会影响最终是否报错,请问这是为什么?
结构体里面元素的位置有什么影响吗?

应该是你数组有越界,越界正好访问到某个内存报错,而颠倒顺序,就改变了内存分布,就不报错