我不明白为什么我收到这个错误。我之前使用过相同的代码,它没有给我带来任何问题,但现在由于某些原因我得到了一个错误。
outputf3 << "The sorted list is as follows: \n\n";
sorting = new float [function.sort()]; // Here is where the error is.
for (i=0; i < length ; i ++)
{
outputf2 << "\n" << sorting[i] ;
}
由于某种原因,它说的是
error: expression in new-declarator must have integral or enumeration type
但我在程序的前一部分使用了同样的东西。
inputs = new float[length];
inputf.clear();
inputf.seekg(0, std::ios_base::beg);
我根本不知道它为什么会这样做。 我正在做的是从文件中读取随机数,然后在函数的另一部分中对它们进行排序,并将它们写入输出文件。
答案 0 :(得分:1)
你为什么这么想:
inputs = new float[length];
与
相同sorting = new float [function.sort()];
除非function
是一个类实例,并且sort
返回一个整数类型,否则它确定无法工作。
声明:
Type* t = new Type[x];
动态分配x
类型的Type
个对象。很明显为什么x
必须是整数类型。
编辑:根据你的评论:
要分配的尺寸需要为整数类型,但您返回float
。但即便如此,它也没有意义。您需要返回inputs
的大小。
答案 1 :(得分:-1)
我要走出去,说function.sort()返回void。意思是这一行:
sorting = new float [function.sort()];
与写作相同......
sorting = new float [void];
没有任何意义。你可能想要function.sort()工作的长度吗?