【发布时间】:2020-11-13 17:53:17
【问题描述】:
我使用 pjsip 已经有一段时间了,为了让它在 UWP 上工作,我在基本 C 代码中遇到了一个看似致命的缺陷。我在下面的代码中收到错误 'addrs': unknown size 和 'deprecatedAddrs': unknown size。
PJ_DEF(pj_status_t) pj_enum_ip_interface2( const pj_enum_ip_option *opt,
unsigned *p_cnt,
pj_sockaddr ifs[]) {
pj_enum_ip_option opt_;
if (opt)
opt_ = *opt;
else
pj_enum_ip_option_default(&opt_);
if (opt_.af != pj_AF_INET() && opt_.omit_deprecated_ipv6) {
pj_sockaddr addrs[*p_cnt];
pj_sockaddr deprecatedAddrs[*p_cnt];
unsigned deprecatedCount = *p_cnt;
unsigned cnt = 0;
int i;
pj_status_t status;
...
pj_sockaddr addrs[*p_cnt]; 和 pj_sockaddr deprecatedAddrs[*p_cnt]; 这两行出现错误。我觉得我理解这不应该起作用,因为 C 不能有动态数组并且需要预先分配空间。但是,pjsip 是一个非常成熟的库,经常使用,所以我的问题是:在这种情况下它是否会起作用?
【问题讨论】: