#include <stdio.h>
typedef struct elem{
void * d;
}Elem;
main(){
Elem *p;
Elem e;
double pi = 3.14;
e.d = π
p->d = π
printf("%f\n",p->d);
printf("%f\n",e.d);
}
main.c: 25: предупреждение: формат «% f» предполагает тип «double», но аргумент 2 имеет тип «void *»
main.c: 26: предупреждение: формат «% f» предполагает тип «double», но аргумент 2 имеет тип «void *»
У меня проблемы с попыткой правильно распечатать эти значения. Я получаю значения, не имеющие ничего общего с 3.14.
%f
берет дубль. Это также UB, потому что объект, на который он указывает, - этоdouble
. Это нарушает строгое правило псевдонима. - person too honest for this site   schedule 28.01.2016