教你獲取new出的數組大小

之前在網上沒怎麼看到獲取數組大小的文章,現在給大家說一下自己的方法。
首先,C++new出的數組或者對象C++都是知道其內存大小的,既佔用字節,而這個佔用字節在哪兒呢,沒錯,就在變量地址 - 4個int佔用字節的大小 = 存放new對象的佔用字節(僅在64位環境下測試,32位也可以試試)。那麼知道這個就簡單了。

我們可以先獲取到存放其佔用字節的內存地址,內存地址 = (int*(對象指針)) - 4, 那麼我們這樣就拿到了存放字節大小的內存地址,如果要獲取數組個數就更簡單了,直接用字節大小 / 對象類型佔用字節 = 數組個數。例:數組個數 = ((int*(對象指針)) - 4) / sizeof(對象類型), 這樣我們就拿到了數組個數,是不是很簡單

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