无法将'char **'转换为'char *'

时间:2014-06-08 17:28:02

标签: c++ ifconfig

我有一个网络接口的索引我收到了一个数据包(即2),并且需要找到接口的名称,该名称应返回"eth0"。我使用if_indextoname()

我对Ubuntu上的C ++不是很熟悉,但是我的代码丢失了一个错误:

  

无法将参数2的char**转换为char*char* if_indextoname(unsigned int, char*)

有人可以帮我解决吗?

#include <net/if.h>
#include <iostream>    

int main()
{
    unsigned int ifindex = 2;
    char *ifname[10];
    std::cout << if_indextoname(ifindex, ifname);
    std::cout << ifname << std::endl;
}

1 个答案:

答案 0 :(得分:2)

char *ifname[10];声明了10个char指针。

我猜你需要的是一个字符指针 char* ifname = new char[IF_NAMESIZE+1]应该可以解决您的问题。

或者,如果您不想将其传递给其他函数,则可以只分配一个自动字符缓冲区。

char ifname[IF_NAMESIZE+1]