Рассмотрим этот код:Перетяжка в структуре поплавков
struct Foo {
float a, b;
};
void bar(float array[2]) {
... // read array[0] and array[1]
}
int main() {
Foo foo;
bar(&foo.a);
}
Является ли этот код безопасным? Скажем, bar
доступ к foo.a
и foo.b
всегда? Мне кажется небезопасным, так как заполнение может происходить, но я не знаю, можем ли мы считать, что заполнение равно 0, так как a
и b
- float
.
Это не определено поведение. Если вы цените дружбу и уважение своих коллег, избегайте. –
Не могли бы вы указать мне на какой-то документ/стандарт? – ChronoTrigger
https://isocpp.org/std/the-standard –