任務是從一個跟蹤器讀取數據包並寫入許多數據包。銷燬libtrace_out_t數組的問題*
我使用libtrace_out_t **作爲輸出跟蹤器。
初始化:
uint16_t size = 10;
libtrace_out_t** array = libtrace_out_t*[size];
for(uint16_t i = 0; i < size; ++i) {
array[i] = trace_create_output(uri); // created OK
trace_start_output(outTracers_[i]); // started OK
}
// writing packets
創建,啓動和使用示蹤劑的數組中的元素寫入數據包的罰款。
for(uint16_t i = 0; i < size; ++i)
{
if(outTracers_[i])
trace_destroy_output(outTracers_[i]);
}
在第一次迭代輸出示蹤劑破壞細:
的問題通過trace_destroy_output()當我破壞迴路輸出示蹤劑引起的。
但在第二個失敗與分割故障
pcap_close(pcap_t* p)
因爲指針p具有價值爲0x0。
有人可以解釋我爲什麼會發生這種事情或如何正確地銷燬它?
你可以顯示代碼分配給outTracers_或libtrace_out_t **的內存嗎?問題可能不是我在你顯示的代碼 – Pandrei