【发布时间】:2016-11-30 16:34:23
【问题描述】:
我创建了一个树类和一个全局函数。我在 Tree 类函数“插入”中创建了一个数组,该数组使用从全局函数“返回”的另一个数组进行初始化。从全局函数返回的数组在该函数中工作正常,但是,它在分配给“插入”函数内的数组(必需数组)时会给出垃圾值。
这是代码 (抄袭问题未满)
float *func_calc(...,...,...,...)
{
float decisions[17] = { 0 };
....
.......
......... // Put Values into the 'decisions' array
return decisions;
}
class Tree
{
..
....
.....
insert(...,...,...,...)
{
....
float* fun_array = new float[17];
float min_num = 0;
for (int i = 1; i <= 6; i++)
{
if (i == 1)
{
fun_array = func_calc(...,...,...,...); // same arguments as the insert function arguments
min_num = fun_array[0];
}
else
{
fun_array = entropy(i, array, arraysize, rD);
float num = entfun_array[0];
if (num < min_ent)
{
min_num = num ;
}
}
}
}
};
int main()
{
Tree T1;
T1.insert(... , ... , ..., ... );
}
【问题讨论】:
-
你正在返回一个指向局部变量的指针,这是 UB。
-
你能花点精力来格式化你的代码吗?
-
使用浮点向量并返回
-
局部变量是指
fun_array?如何 -
是的 SunAns,如果您不使用
clang-format,请放弃您正在做的事情并在您的系统上设置clang-format。它。将要。改变。您的。生活。 ;)