const * char类型中的返回值在获得值时立即被解除引用

时间:2014-10-15 08:43:35

标签: c++ pointers c++11

以下函数返回const char * typed中的值。

productID = udev_device_get_sysattr_value(device,"idProduct");

但是,在获得返回值后立即取消引用。

这使我的系统出错并崩溃。

如何使用此返回值保留引用?

谢谢

2 个答案:

答案 0 :(得分:1)

取消引用表示访问指针指向的数据。

您可能意味着数据在您获得指针后立即被删除。 尝试将strcpy返回的值放入productId。

答案 1 :(得分:0)

我怀疑productIDstd::string(或其他类的实例)。

由于udev_device_get_sysattr_value()可以返回NULL,这可能会有问题,因为将NULL分配给std::string会导致未定义的行为。

要解决此问题,请将函数的返回值分配给const char*变量,并在对其执行任何其他操作之前检查NULL