Если неясно, ваш массив не может быть двойной длины.Это неопределенное поведение.
Это потому, что double - это не целое число, а рациональное число, которое может быть целым числом.Простой способ понять эту проблему состоит в том, чтобы взять некоторое значение с плавающей запятой, скажем, 3.5.
Что такое массив длины 3.5. Это три с половиной слота некоторого размера в непрерывной памяти?Достаточно ли слотов для 3?4?Слоты 3.5, скорее всего, будут бесполезными и непреднамеренными, и если это не дробный слот, он может быть нечетким и, вероятно, непреднамеренным, а следовательно, неопределенным поведением.
Хотя другие люди предложили решения, создающие интегральный тип, вы не можете создатьмассив двойной длины.Вы можете создать массив значений типа double, т.е.
double arr[5];
Но вы не можете создать массив двойной длины, например
int arr[3.3];