Программа не компилируется из-за неправильного приведения типов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Приветствую всех! Есть вот код ->
#include <stdio.h>
#include <time.h>
 
void dump_time_struct_bytes(struct tm *time_ptr, int size){
        int i;
        unsigned char *raw_ptr;
 
        printf("bytes of struct located at 0x%08x\n", time_ptr);
        raw_ptr = (unsigned char *) time_ptr;
        for (i=0; i < size; i++)
        {
                printf("%02x ", raw_ptr[i]);
                if (i%=16 == 15)
                        printf("\n");
        }
        printf("\n");
}
 
int main(){
        int seconds_since_epoch;
        struct tm current_time, *time_ptr;
        int hour, minute, second, i, *int_ptr;
 
        seconds_since_epoch = time(0);
 
        printf("time() - seconds since epoch %d\n", seconds_since_epoch);
 
        time_ptr= &current_time;
 
        localtime_r(&seconds_since_epoch, time_ptr);
 
        hour = current_time.tm_hour;
        minute = time_ptr->tm_min;
        second = *((int *) time_ptr);
 
        printf("Current time is: %02d:%02d:%02d\n", hour, minute, second);
 
        dump_time_struct_bytes(time_ptr, sizeof(struct tm));
 
        minute = hour = 0;
        int_ptr = (int *) time_ptr;
 
        for(i=0;i<3;i++){
                printf("int_ptr @ 0x%08x : %d\n", int_ptr, *int_ptr);
                int_ptr++;
        }
}
При компиляции выдает ->
root@bt:/home/udalite# gcc -o time_example2 time_example2.c 
time_example2.c: In function ‘dump_time_struct_bytes’:
time_example2.c:8: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘struct tm *’
time_example2.c:13: warning: division by zero
time_example2.c: In function ‘main’:
time_example2.c:30: warning: passing argument 1 of ‘localtime_r’ from incompatible pointer type
/usr/include/time.h:248: note: expected ‘const time_t * __restrict__’ but argument is of type ‘int *’
time_example2.c:44: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘int *’
Программа работает на половину как то :\ Просьба помочь привести к нужному типу. Заранее благодарен.

Решение задачи: «Программа не компилируется из-за неправильного приведения типов»

textual
Листинг программы
if (i%15==0 && i)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5