以下函数返回const char * typed中的值。
productID = udev_device_get_sysattr_value(device,"idProduct");
但是,在获得返回值后立即取消引用。
这使我的系统出错并崩溃。
如何使用此返回值保留引用?
谢谢
答案 0 :(得分:1)
取消引用表示访问指针指向的数据。
您可能意味着数据在您获得指针后立即被删除。
尝试将strcpy
返回的值放入productId。
答案 1 :(得分:0)
我怀疑productID
是std::string
(或其他类的实例)。
由于udev_device_get_sysattr_value()
可以返回NULL
,这可能会有问题,因为将NULL
分配给std::string
会导致未定义的行为。
要解决此问题,请将函数的返回值分配给const char*
变量,并在对其执行任何其他操作之前检查NULL
。