memset (ary, 0, длина) портативный способ ввести нуль в двойном массиве [дубликат]

6
задан Community 23 May 2017 в 12:14
поделиться

3 ответа

Если вы работаете в среде C99, вы не получаете никаких гарантий. Представление чисел с плавающей запятой определено в п. 5.2.4.2.2, но это только логическое математическое представление. В этом разделе даже не упоминается, как числа с плавающей запятой хранятся в байтах. Вместо этого в сноске говорится:

Модель с плавающей запятой предназначена для пояснения описания каждой характеристики с плавающей запятой и не требует идентичности арифметики с плавающей запятой реализации.

Далее, в п. 6.2.6.1 сказано:

Представления всех типов не определены, за исключением случаев, указанных в этом подпункте.

И в остальной части этого подпункта типы с плавающей запятой не упоминаются.

Таким образом, нет никакой гарантии, что 0,0 будет представлен как все биты-ноль.

4
ответ дан 10 December 2019 в 00:34
поделиться

Он не переносится. Просто используйте цикл. Вам не нужно приводить возвращаемое значение malloc.

3
ответ дан 10 December 2019 в 00:34
поделиться

Используйте :: std :: fill (массив, массив + длина, 0,0);

3
ответ дан 10 December 2019 в 00:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: