]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
change variable to heap
authorBastian Dehn <hhaalo@arcor.de>
Wed, 12 Jun 2024 17:42:21 +0000 (19:42 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Wed, 12 Jun 2024 17:42:21 +0000 (19:42 +0200)
src/main.c

index fe368bc1f44daacd57706fc3d6e015d517ae7132..3073b01a21e95335a9602a253e00b2cfd56826ce 100644 (file)
@@ -15,94 +15,111 @@ int main(int argc, char* argv[])
                return 1;
        }
 
-       time_t now = 0;
-       time_t begin = 0;
-       time_t worktime = 0;
-       struct tm now_tm;
-       struct tm begin_tm;
-       struct tm work_end_tm;
-       char weekday[11];
-       char timestr[7];
+       time_t* now = malloc(sizeof(time_t));
+       time_t* begin = malloc(sizeof(time_t));
+       time_t* worktime = malloc(sizeof(time_t));
+       struct tm* now_tm = malloc(sizeof(struct tm));
+       struct tm* begin_tm = malloc(sizeof(struct tm));
+       struct tm* work_end_tm = malloc(sizeof(struct tm));
+       char* weekday = malloc(sizeof(char) * 11);
+       char* timestr = malloc(sizeof(char) * 7);
 
        printf("Version: %s\n\n", PROJECT_VERSION);
 
-       time(&begin);
-       localtime_r(&begin, &begin_tm);
-       begin_tm.tm_hour = atoi(argv[1]);
-       begin_tm.tm_min = atoi(argv[2]);
-       begin = timelocal(&begin_tm);
+       time(begin);
+       localtime_r(begin, begin_tm);
+       begin_tm->tm_hour = atoi(argv[1]);
+       begin_tm->tm_min = atoi(argv[2]);
+       *begin = timelocal(begin_tm);
 
-       time(&now);
-       localtime_r(&now, &now_tm);
-       get_weekday(now_tm.tm_wday, weekday);
+       time(now);
+       localtime_r(now, now_tm);
+       get_weekday(now_tm->tm_wday, weekday);
        printf("%-25s%s %02d.%02d.%04d %02d:%02d %s\n",
                "Arbeitsbeginn:",
                weekday,
-               begin_tm.tm_mday,
-               begin_tm.tm_mon + 1,
-               begin_tm.tm_year + 1900,
-               begin_tm.tm_hour,
-               begin_tm.tm_min,
-               begin_tm.tm_zone);
+               begin_tm->tm_mday,
+               begin_tm->tm_mon + 1,
+               begin_tm->tm_year + 1900,
+               begin_tm->tm_hour,
+               begin_tm->tm_min,
+               begin_tm->tm_zone);
 
        printf("\n");
 
        printf("%-25s%s %02d.%02d.%04d %02d:%02d %s\n",
                "Aktuelle Zeit:",
                weekday,
-               now_tm.tm_mday,
-               now_tm.tm_mon + 1,
-               now_tm.tm_year + 1900,
-               now_tm.tm_hour,
-               now_tm.tm_min,
-               now_tm.tm_zone);
+               now_tm->tm_mday,
+               now_tm->tm_mon + 1,
+               now_tm->tm_year + 1900,
+               now_tm->tm_hour,
+               now_tm->tm_min,
+               now_tm->tm_zone);
 
        printf("\n");
 
-       worktime = get_eight_hour_end_worktime(begin);
-       localtime_r(&worktime, &work_end_tm);
+       *worktime = get_eight_hour_end_worktime(*begin);
+       localtime_r(worktime, work_end_tm);
        printf("%-25s%s %02d.%02d.%04d %02d:%02d %s\n",
                "Arbeitsende 8 Std:",
                weekday,
-               work_end_tm.tm_mday,
-               work_end_tm.tm_mon + 1,
-               work_end_tm.tm_year + 1900,
-               work_end_tm.tm_hour,
-               work_end_tm.tm_min,
-               work_end_tm.tm_zone);
-
-       worktime = get_ten_hour_end_worktime(begin);
-       localtime_r(&worktime, &work_end_tm);
+               work_end_tm->tm_mday,
+               work_end_tm->tm_mon + 1,
+               work_end_tm->tm_year + 1900,
+               work_end_tm->tm_hour,
+               work_end_tm->tm_min,
+               work_end_tm->tm_zone);
+
+       *worktime = get_ten_hour_end_worktime(*begin);
+       localtime_r(worktime, work_end_tm);
        printf("%-25s%s %02d.%02d.%04d %02d:%02d %s\n",
                "Arbeitsende 10 Std:",
                weekday,
-               work_end_tm.tm_mday,
-               work_end_tm.tm_mon + 1,
-               work_end_tm.tm_year + 1900,
-               work_end_tm.tm_hour,
-               work_end_tm.tm_min,
-               work_end_tm.tm_zone);
+               work_end_tm->tm_mday,
+               work_end_tm->tm_mon + 1,
+               work_end_tm->tm_year + 1900,
+               work_end_tm->tm_hour,
+               work_end_tm->tm_min,
+               work_end_tm->tm_zone);
 
        printf("\n");
 
-       worktime = get_current_worktime(begin, now);
-       get_time_str(worktime, timestr);
+       *worktime = get_current_worktime(*begin, *now);
+       get_time_str(*worktime, timestr);
        printf("%-25s%s\n", "Aktuelle Arbeitzeit:", timestr);
 
-       worktime = get_brutto_worktime(begin, now);
-       worktime = get_break_time(worktime);
-       get_time_str(worktime, timestr);
+       *worktime = get_brutto_worktime(*begin, *now);
+       *worktime = get_break_time(*worktime);
+       get_time_str(*worktime, timestr);
        printf("%-25s%s\n", "Aktuelle Pausenzeit:", timestr);
 
        printf("\n");
 
-       worktime = get_current_worktime_diff_to_end_eight_hour(begin, now);
-       get_time_str(worktime, timestr);
+       *worktime = get_current_worktime_diff_to_end_eight_hour(*begin, *now);
+       get_time_str(*worktime, timestr);
        printf("%-25s%s\n", "Arbeitzeit bis 8 Std:", timestr);
 
-       worktime = get_current_worktime_diff_to_end_ten_hour(begin, now);
-       get_time_str(worktime, timestr);
+       *worktime = get_current_worktime_diff_to_end_ten_hour(*begin, *now);
+       get_time_str(*worktime, timestr);
        printf("%-25s%s\n", "Arbeitzeit bis 10 Std:", timestr);
 
+       free(now);
+       now = NULL;
+       free(begin);
+       begin = NULL;
+       free(worktime);
+       worktime = NULL;
+       free(now_tm);
+       now_tm = NULL;
+       free(begin_tm);
+       begin_tm = NULL;
+       free(work_end_tm);
+       work_end_tm = NULL;
+       free(weekday);
+       weekday = NULL;
+       free(timestr);
+       timestr = NULL;
+
        return 0;
 }
\ No newline at end of file