Даже если маловероятно, что вы столкнетесь с машиной, в которой возникли проблемы, вы также можете относительно легко избежать этого, если действительно говорите о массивах , как указано в заголовке вопроса, и если эти массивыимеют известную длину во время компиляции (то есть , а не VLA), тогда просто их инициализация, вероятно, еще более удобна:
double A[133] = { 0 };
всегда должно работать.Если вам понадобится снова обнулить такой массив позже, и ваш компилятор будет совместим с современным C (C99), вы можете сделать это с помощью составного литерала
memcpy(A, (double const[133]){ 0 }, 133*sizeof(double));
на любом современном компиляторе, это должно бытьэффективен как memset
, но имеет то преимущество, что не полагается на конкретную кодировку double
.