微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将指针复制到结构中的结构

如何解决将指针复制到结构中的结构

我正在使用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 举报,一经查实,本站将立刻删除。