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];的位置会影响最终是否报错,请问这是为什么?
结构体里面元素的位置有什么影响吗?
应该是你数组有越界,越界正好访问到某个内存报错,而颠倒顺序,就改变了内存分布,就不报错