猿问

报错时程序指针直线GetAnnexbNALU(n, bits_read);

while(!feof(bits_read))
{
GetAnnexbNALU(n, bits_read);
if(n->len<=1000)
{
memset(nalu, '\0', 1004);
int_to_char(nalu, counter1, counter);//counter1以后用不到
nalu_payload = nalu+4;
memcpy(nalu_payload, n->buf, n->len);
for (int port_cout = 0; port_cout < 5; port_cout ++)/////////////////为了测试添加
{
broad_to.sin_port = htons(6666);
sendto(s_broad_send, nalu, 1004, 0, (sockaddr *)&broad_to, sizeof(broad_to));
}
counter++;
counter1 = 0;
}
}
}
}
该循环只进行了一次,第二次开始就报错,报错时程序指针直线GetAnnexbNALU(n, bits_read);
语句。

喵喔喔
浏览 102回答 1
1回答

胡说叔叔

那就是你的GetAnnexbNALU函数发出来的异常,设个断点进去看看为什么报错了?是不是读写的长度有问题?不行的话,看看能否把别的操作屏蔽掉,就只运行有问题的地方,以测试是不是真的有问题。单步调试操作延时比较长,有没有想想是不是延时不够的问题? 频繁申请和释放内存,这个应该不是重点关注对象吧,我没看到你的代码有new或者malloc操作符,只有写memcpy和memset,应该不是这些函数导致的。
随时随地看视频慕课网APP
我要回答