gpt4 book ai didi

c++ - 将 float 转换为 float *

转载 作者:行者123 更新时间:2023-11-30 01:20:51 26 4
gpt4 key购买 nike

我的代码中有 QStandardItem* 列表

QList<QStandardItem*> lst

现在这是可以接受的并且有效

float a = lst[0]->text().toFloat();

但是以下不起作用

float* a = &(lst[0]->text().toFloat());

我收到一个智能感知错误,指出

Expression must be an lvalue or a function designator

我在这里需要一个指针,因为我使用的外部库需要这样的引用

 some_class.add_variable(const std::string& variable_name, float& t);

所以如果我得到一个指针,我可以简单地将它作为 *a 传递

关于如何解决这个问题有什么建议吗?

最佳答案

右侧是所谓的临时。它是一个对象,在当前表达式结束后将不存在。出于显而易见的原因,您不能使用临时地址;表达式结束后,您将得到一个无效指针。

你可以这样做:

float a = lst[0]->text().toFloat();
float* aPtr = &a;

这将安全地复制临时值(或者在 C++11 中,它可以移动临时值),然后您可以引用您的本地非临时变量.

关于c++ - 将 float 转换为 float *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18881462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com