memcpy的使用問題

    具體說一下使用環境吧,就是我通過網絡從設備端獲得一段數據buf以及其長度,然後我將這段內存拷貝到我自己的結構體中,這都沒有問題,關鍵在於我指定的拷貝長度值是從網絡獲得的數據buf的長度。

   有什麼問題呢,由於通信雙方擴展了各自的結構體,也就是buf的長度比原來增大了。由於我之前的這種拷貝方式,使用老的軟件訪問新的設備時,數據buf的長度就比結構體的長度要大,memcpy就會將一段結構體之後的內存指定了數值,這將帶來不可測的問題。

   因此在網絡通信時,在使用memcpy時長度的指定最好使用結構體的長度,這樣新軟件訪問老設備,數據缺失不是大的問題,因爲老設備本身不具備這樣的能力,但數據超出則是可怕的事。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章