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 關注
- 93 瀏覽
添加回答
舉報
0/150
提交
取消