我正在将 Raylib GUI 框架用于显示 Collatz 猜想迭代中的所有节点的项目。在我的程序中,我有一个Node
对象类,它只是一个带有标记数字的圆圈。text
但是,我的方法中的变量draw
有问题;C26815: The pointer is dangling because it points at a temporary instance which was destroyed
. 我是 C++ 新手,目前没有任何书籍可以教我,因此我不完全确定“悬空”指针是什么或它的含义,但我相当确定这是原因我无法在我的节点上显示任何文本。这是我的Node
课:
class Node {
private:
int x;
int y;
int value;
int radius;
public:
Vector2 get_pos() {
return Vector2{ (float)x, (float)-value * 25 };
}
void set_radius(int newRadius) {
radius = newRadius;
}
void set_value(int newValue) {
value = newValue;
}
void set_x(int newX) {
x = newX;
}
void set_y(int newY) {
y = newY;
}
void draw() {
if (value) {
const char* text = std::to_string(value).c_str();
Vector2 size = MeasureTextEx(GetFontDefault(), text, 32.0f, 0.0f);
Vector2 pos = get_pos();
DrawCircle(pos.x, pos.y, radius, WHITE);
DrawText(text, pos.x - size.x / 2, pos.y - size.y / 2, 32, BLACK);
}
}
};
任何有关正在发生的事情的帮助或解释将不胜感激。
编辑:其他人在其他问题上也有类似的问题,但没有一个答案对我有意义或不适用于我的情况。