我有這個代碼,我寫道,將數組0這段代碼如何工作沒有任何錯誤?
int arr[4];
memset(arr, 0, sizeof (arr));
很簡單,但代碼是如何工作的,沒有任何錯誤,即使sizeof(arr)
= 16(4數組的大小* 4 INT)和大小我使用時,我宣佈數組是4,如何memset
設置16位爲零,我通過作爲參數的數組大小爲4?
我用memset(arr, 0, sizeof(arr)/sizeof(*arr));
來獲得數組的實際大小,結果是準確的,它給了我4
但上述代碼如何正確工作?
在對SO提出問題之前,請先閱讀該功能的文檔。 – user3286661
爲什麼你使用上個世紀的函數來繞開C++中的內存? – user463035818
「memset如何將16位設置爲零」它將16 _bytes_設置爲零,假設sizeof(arr)== 16。 – davmac