程序莫名崩了,请大家指教

下面这段代码在跑的时候可以运行处结果,但是在结束的时候总是会出错,不知道是为什么,请各路大神指教

// 3_1.cpp: 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include
#include
using namespace std;

int array_set(string a, int result[], int b) {

int len_result;
int len_a = 0;
while (a[len_a] != '\0')
    len_a += 1;

if (a == "*") {
    for (int i = 0; i < b; i++) {
        result[i] = i + 1;
    }
    len_result = b;
}
else {
    int num = 0;
    len_result = 0;
    for (int i = 0; i < len_a; i++) {
        if (a[i] == '-') {
            result[0] = num;
            result[1] = -1;
            len_result = 2;
            num = 0;
            continue;
        }

        if (a[i] == ',') {
            result[len_result] = num;
            len_result += 1;
            num = 0;
            continue;
        }


        num = num * 10 + int(a[i] - 48);
    }
    result[len_result] = num;
    len_result += 1;
}

if (result[1] == -1) {
    len_result = result[2] - result[0] + 1;
    for (int i = 0; i < len_result; i++)
        result[i] = i + result[0];
}

for (int i = 0; i < len_result; i++)
    std::cout << result[i] << " ";
std::cout << endl;

return len_result;

}

int main() {

int n;
cin >> n;

string times[6];//这些即为所要求的时间 

int num = n;

for (int i = 0; i < num; i++) {
    int len_mon;
    int len_d;
    int len_h;
    int len_min;

    //将要求的时间输入进来
    for (int j = 0; j < 6; j++) {
        cin >> times[j];
    }

    int month[12];
    len_mon = array_set(times[3], month, 12);
    int day[31];
    len_d = array_set(times[2], day, 31);
    int hour[10];
    len_h = array_set(times[1], hour, 24);
    int minute[10];
    len_min = array_set(times[0], minute, 60);

}


return 0;

}

请问时间输入的格式是什么样的,你这个循环n次,但里面的内容确实完全一样的,这个循环真的有必要存在吗?

 因为不知道你程序干嘛的,以及你的输入是什么,只能就你程序异常这一点进行排错。

int array_set(string a1, int result[], int b) { //修改

    int len_result;
    int len_a = 0;
    const char * a = a1.c_str(); //添加
    while (a[len_a] != '\0')
        len_a += 1;