在C ++中获取结构指针的参数时出错

时间:2019-03-15 23:55:51

标签: c++

我定义了以下结构:

struct com_NetworkStruct 
{
    enum com_NetworkStatus status;
    char IPV4_Addr[COM_IPV4_ADDR_LENGTH];
    char IPV4_Netmask[COM_IPV4_ADDR_LENGTH];
    char IPV4_DNS1[COM_IPV4_ADDR_LENGTH];
    char IPV4_DNS2[COM_IPV4_ADDR_LENGTH];
    int IPV4_DHCP_Enabled;
    int IPV6_Supported;
    int IPV6_Enabled;
    struct com_IPv6_Data *IPV6_Address_List;
    char HW_Addr[COM_ETH_MAC_ADDR_LENGTH];
    int MTU_Size;
    int Link_Speed;
    enum com_LinkType Link_Type;
};

以及以下方法定义:

int foo(struct com_NetworkStruct **netinfo);

这是主要功能以及我如何调用该功能:

int main(int argc, char const *argv[])
{
    int ret;
    char data_aux[200];
    struct com_NetworkStruct *netinfo = NULL;

    ret = foo(&netinfo);

    memset(data_aux, 0, sizeof(data_aux));
    sprintf(data_aux, "%s", netinfo->IPV4_Addr);

    cout<<string(data_aux)<<endl;

    return 0;
}

问题是当我尝试读取IPV4_Addr值的数据时,因为它向我发送了以下错误:

Error:  #289: no instance of constructor "std::basic_string<_CharT, Traits, Alloc>::basic_string [with CharT=char, Traits=std::char_traits<char>, _Alloc=std::allocator<char>]" matches the argument list
        argument types are: (const char [20], char [16])

我已经尝试过了,但是没有用:

&netinfo->IPV4_Addr
netinfo.IPV4_Addr
string(netinfo->IPV4_Addr)

0 个答案:

没有答案