C 我在使从DD.MM.YYYY日期返回一年中的某一天的程序动态化时遇到问题

C 我在使从DD.MM.YYYY日期返回一年中的某一天的程序动态化时遇到问题,c,structure,dynamic-programming,C,Structure,Dynamic Programming,我试图使代码动态化,但出现了一个错误。代码的主要目标是动态的(我阅读了有关malloc和其他人的文献,但我不知道如何正确使用它。我想你会帮我一点忙) } 这是可行的,但我需要动态结构或数组 int date_arr[DATE_MAX]; char date_str[10]; gets(date_str); char sep[] = "."; char* pos = strtok(date_str, sep); int i = 0; while (pos != NULL) { date_

我试图使代码动态化,但出现了一个错误。代码的主要目标是动态的(我阅读了有关malloc和其他人的文献,但我不知道如何正确使用它。我想你会帮我一点忙)

}

这是可行的,但我需要动态结构或数组

int date_arr[DATE_MAX];
char date_str[10];
gets(date_str);
char sep[] = ".";
char* pos = strtok(date_str, sep);

int i = 0;
while (pos != NULL) {
    date_arr[i] = atoi(pos);
    printf("%d ", date_arr[i]);
    i++;
    pos = strtok(NULL, sep);
}
int d_day = date_arr[0];
int d_month = date_arr[1];
int d_year = date_arr[2];

DATE res = Date(d_day, d_month, d_year);
printf("\n\nThe day of year is: = %d", res.day);
Gap();  
printf("The string date is: %d of %s of %d", d_day, res.month, res.year);
,,
第二幅图像上的错误是关于wntdll.pdb未加载的.exe文件导致停止点
char*data\u输入=(char*)malloc(sizeof(char))将分配一个字符。我认为您需要更多,并且不要忘记C中字符串的终止空字符。请提供一个示例并提出一个具体问题。我不清楚你需要回答什么具体问题。如果你有错误信息,请提供完整的错误信息。请不要注意日期函数及其编号、索引的详细信息:
get(Date\u str)函数:
gets()
多年来一直在贬值,几年前已从C语言中完全删除。您的编译器应该已经告诉您这个问题。发布的代码没有考虑到以下事实:一些国家将日期写为MM/DD/YYYY,而另一些国家将日期写为:DD/MM/YYYY
char* dates_arr = (char*)malloc(sizeof(char)* 6);
char* data_entered = (char*)malloc(sizeof(char) * 10);
if (dates_arr) {
    int counter = 3;
    char sep[] = ".";
    for (int c = 0; c < counter; c++) {
        gets(data_entered);
        char* pst = strtok(data_entered, sep);
        int i = 0;
        while (pst != NULL) {
            dates_arr[i] = atoi(pst);
            i++;
            pst = strtok(NULL, sep);
        }
        free(data_entered);
        int d_day = dates_arr[0];
        int d_month = dates_arr[1];
        int d_year = dates_arr[2];



        DATE res = Date(d_day, d_month, d_year);

        printf("\n\nThe day of year is: = %d", res.day);
        Gap();  
        printf("The string date is: %d of %s of %d", d_day, res.month, res.year);
        Gap();
        Beautify();
        free(dates_arr);
    }
}
else {
    printf("\n\n\nOOPS");
    return 0;
}
int date_arr[DATE_MAX];
char date_str[10];
gets(date_str);
char sep[] = ".";
char* pos = strtok(date_str, sep);

int i = 0;
while (pos != NULL) {
    date_arr[i] = atoi(pos);
    printf("%d ", date_arr[i]);
    i++;
    pos = strtok(NULL, sep);
}
int d_day = date_arr[0];
int d_month = date_arr[1];
int d_year = date_arr[2];

DATE res = Date(d_day, d_month, d_year);
printf("\n\nThe day of year is: = %d", res.day);
Gap();  
printf("The string date is: %d of %s of %d", d_day, res.month, res.year);