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);语句。
1 回答
胡说叔叔
TA贡献1804条经验 获得超8个赞
那就是你的GetAnnexbNALU函数发出来的异常,设个断点进去看看为什么报错了?是不是读写的长度有问题?
不行的话,看看能否把别的操作屏蔽掉,就只运行有问题的地方,以测试是不是真的有问题。
单步调试操作延时比较长,有没有想想是不是延时不够的问题? 频繁申请和释放内存,这个应该不是重点关注对象吧,我没看到你的代码有new或者malloc操作符,只有写memcpy和memset,应该不是这些函数导致的。
- 1 回答
- 0 关注
- 58 浏览
添加回答
举报
0/150
提交
取消