Я наткнулся на это на канале IRC вчера и не понял, почему это было плохое поведение:Что не так с этим С броском
#include <stdio.h>
int main(void)
{
char x[sizeof(int)] = { '\0' }; int *y = (int *) x;
printf("%d\n", *y);
}
Есть ли потеря данных или что-нибудь? Может ли кто-нибудь дать мне какие-либо документы, чтобы объяснить далее, что он делает неправильно?
Имеет ли это значение? Зачем вам писать такой код? – Clifford
@Cliff, зависит от вашего определения вопросов. Если знать больше о языке, в том числе в углах, это хорошо, это важно. Знание всегда хорошее. – GManNickG
@Clifford - даже если вы не напишете этот код, вы можете когда-нибудь понадобиться поддерживать чужой код, написанный таким образом. –