【发布时间】:2017-11-20 13:49:13
【问题描述】:
我今天的代码有问题, 问题看起来像这样:
void my_function(r_struct *suit)
{
sfVector2f position;
position = get_position(suit->other_vector);
printf("Output : %f\n", position.x);
}
(get_position 返回一个 sfVector2f) 当我这样做时,位置的输出是:0。 但是当我这样做时:
void my_function(r_struct *suit)
{
printf("Output: %f\n", get_position(suit->other_vector).x);
}
现在输出是:50。我不明白我做错了什么
编辑:
sfVector2f *get_position(sfVector2f *point_to)
{
sfVector2f new_pos;
new_pos.x = point_to.x;
new_pos.y = point_to.y;
return (new_pos);
}
【问题讨论】:
-
请提供
get_position()函数的代码。 -
无意冒犯,但这很难相信。一个独立的完整可编译示例的好案例。
-
顺便说一句,用
r_struct之类的名称键入struct确实毫无意义,原因有很多。 -
我看不到显示的函数是如何编译的。您从应该返回指针的函数返回结构。返回指向局部变量的指针将是未定义的行为。返回一个结构是干净和简单的。