如何解决将指针复制到结构中的结构
我正在使用libusb库,该库运行良好,但是现在我试图在自己的结构中使用其结构。我认为问题只是我复制结构的方式,因此可能无需了解libusb的工作原理。 我的结构包含libusb结构:
struct device {
libusb_device *device_handled;
libusb_device_handle *handle;
int port[7];
};
typedef struct device device;
和我的功能:
int myfunction(device *device_element)
{
libusb_device *tempdevice;
libusb_device_handle *temphandle;
device_element = malloc(sizeof(device));
//my code here where I use tempdevice and temphandle
(&device_element)->device_handled = tempdevice;
(&device_element)->handle = temphandle;
}
发出的错误来自最后两行,我真的不明白为什么。
‘device_element’ is a pointer; did you mean to use ‘->’?
(&device_element)->handle = temphandle;
^~
->
解决方法
您不需要在&
之前添加device_element
,因为malloc
返回指向已分配结构的指针。因此,只需使用:
(device_element)->device_handled = tempdevice;
(device_element)->handle = temphandle;
,
您在那里不需要&
运算符。
只需使用
device_element->device_handled = tempdevice;
device_element->handle = temphandle;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。