Если вы работаете в среде C99, вы не получаете никаких гарантий. Представление чисел с плавающей запятой определено в п. 5.2.4.2.2, но это только логическое математическое представление. В этом разделе даже не упоминается, как числа с плавающей запятой хранятся в байтах. Вместо этого в сноске говорится:
Модель с плавающей запятой предназначена для пояснения описания каждой характеристики с плавающей запятой и не требует идентичности арифметики с плавающей запятой реализации.
Далее, в п. 6.2.6.1 сказано:
Представления всех типов не определены, за исключением случаев, указанных в этом подпункте.
И в остальной части этого подпункта типы с плавающей запятой не упоминаются.
Таким образом, нет никакой гарантии, что 0,0
будет представлен как все биты-ноль.
Он не переносится. Просто используйте цикл. Вам не нужно приводить возвращаемое значение malloc.
Используйте :: std :: fill (массив, массив + длина, 0,0);