读取访问权限冲突是什么原因要怎么解决!

引发未经处理的异常:读取访问权限冲突怎么处理

很可能是数组越界了,索引大于等于size()的大小了。

加断点调试,先把错误定位到具体出错的代码行

添加短点的地方报错了,但是不知道为什么

 

Date lunar::LuanrDate(int calendar_year, int calendar_month, int calendar_day)
{
	Date luanr_date;
	luanr_date.year = calendar_year;
	luanr_date.month = 0;
	luanr_date.day = 0;
	luanr_date.leap = false;

	int year_index = calendar_year - beginyear;

	//计算春节的公历日期
	int spring_thisyear_month = (LUNAR_YEARS[year_index] & 0x60) >> 5;//进行按位与运算
	int spring_thisyear_day = (LUNAR_YEARS[year_index] & 0x1f);

	//计算今天是公历年的第几天
	int today_Common_many_yd = How_many_dya(calendar_year, calendar_month, calendar_day);

	//计算春节是公历年的第几天
	int spring_leap_many_yd = How_many_dya(calendar_year, spring_thisyear_month, spring_thisyear_day);

	//计算今天是农历年的第几天
	int today_luanr_yd = today_Common_many_yd - spring_leap_many_yd + 1;

	//如果今天在春节的前面,重新计算today_luanr_yd
	if (today_luanr_yd < 0)
	{
		//农历年比当前公历年小1

		year_index--;
		luanr_date.year--;
		spring_thisyear_month = (LUNAR_YEARS[year_index] & 0x60) >> 5;
		spring_thisyear_day = (LUNAR_YEARS[year_index] & 0x1f);
		spring_leap_many_yd = How_many_dya(calendar_year, spring_thisyear_month, spring_thisyear_day);
		int year_total_day = How_many_dya(luanr_date.year, 12, 31);
		today_luanr_yd = today_Common_many_yd + year_total_day - spring_leap_many_yd + 1;
	}


	//计算月份和日期
	int luanr_month = 1;
	for (; luanr_month <= 13; luanr_month++)
	{
		int month_day = 29;
		if ((LUNAR_YEARS[year_index] >> (6 + luanr_month)) & 0x1)
			month_day = 30;
		if (today_luanr_yd <= month_day)
			break;
		else
			today_luanr_yd -= month_day;
	}
	luanr_date.day = today_luanr_yd;
	//处理闰月

	int leap_month = (LUNAR_YEARS[year_index] >> 20) & 0xf;//计算农历月份
	if (leap_month > 0 && leap_month < luanr_month)
	{
		luanr_month--;
		//如果当前月为闰月,设置闰月标志

		if (luanr_month == leap_month)
			luanr_date.leap = true;
	}
	assert(leap_month <= 12);//assert()检查函数参数的值
	luanr_date.month = luanr_month;
	return luanr_date;
}

好像是这段出现错误了,可以麻烦帮忙看看嘛,谢谢