C 使用GetIFADRS仅获取特定地址

C 使用GetIFADRS仅获取特定地址,c,networking,C,Networking,我正在我的程序中使用。 我只想分析br lan,但只分析最后一个 为此,我正在解析ifa并在char*中存储ifa->ifa\u name等于br lan时的地址 问题是,为每个br lan覆盖我的char*太贪吃了。如何在不进行任何解析的情况下仅获取最后一个?始终是br lan最后一个?@Silveris是的,您可以尝试根据列表的大小和此列表中元素的大小获取最后一个。不过,你必须在列表中循环一次才能知道它的大小。你衡量过成本了吗?你确定这很重要吗?发现它是可测量的几乎是令人惊讶的,更不用说它实

我正在我的程序中使用。 我只想分析
br lan
,但只分析最后一个

为此,我正在解析
ifa
并在
char*
中存储
ifa->ifa\u name
等于
br lan
时的地址


问题是,为每个
br lan
覆盖我的
char*
太贪吃了。如何在不进行任何解析的情况下仅获取最后一个?

始终是
br lan
最后一个?@Silveris是的,您可以尝试根据列表的大小和此列表中元素的大小获取最后一个。不过,你必须在列表中循环一次才能知道它的大小。你衡量过成本了吗?你确定这很重要吗?发现它是可测量的几乎是令人惊讶的,更不用说它实际上是程序运行时的重要部分了。所以你必须一步一步地浏览这个列表。在浏览完列表之前,您可以决定不复制,只保留一个指向最后一个相关条目的指针,然后执行令您担心的复制操作。我认为你担心的是错误的事情——或者你没有说明你为什么担心这件事,以及为什么以直接的方式做这件事是一个真正的问题。
getifaddrs()
本身所做的工作的成本可能超过您分析其结果所做的工作。界面的设计——链表而不是数组——排除了您想要做的事情。