Получение ошибки: выражение в new-описателе должно иметь тип целого или перечисления C ++ - PullRequest
0 голосов
/ 23 марта 2012

Я не понимаю, почему я получаю эту ошибку.Я использовал тот же код ранее, и он не доставил мне проблем, но теперь по какой-то причине я получаю сообщение об ошибке.Я использовал то же самое здесь, в предыдущей части программы.

           inputs = new float[length];
           inputf.clear();
           inputf.seekg(0, std::ios_base::beg);

Я понятия не имею, зачем он вообще это делает.Я читаю случайные числа из файла, затем сортирую их в другой части функции и записываю их в выходной файл.

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Почему вы думаете:

inputs = new float[length];

совпадает с

sorting = new float [function.sort()];

Если function не является экземпляром класса и sort возвращает целочисленный тип, он точно не будет работать.

Утверждение:

Type* t = new Type[x];

динамически распределяет x объекты типа Type. Совершенно очевидно, почему x должен быть целочисленного типа.

РЕДАКТИРОВАТЬ: Согласно вашему комментарию:

Размер для выделения должен быть целого типа , но вы возвращаете float. Но даже тогда это не имело бы смысла. Вам необходимо вернуть размер inputs.

0 голосов
/ 23 марта 2012

Я собираюсь выйти на конечность и сказать, что function.sort () возвращает void. означая эту строку:

sorting = new float [function.sort()];

- это то же самое, что писать ...

sorting = new float [void];

что не имеет никакого смысла. Вы, вероятно, хотите, чтобы длина какой-либо функции.s.s (() работает?

...