假設存在數組A,使得它的元素是struct Element,並且我被告知struct Element沒有填充。根據指向第一個和最後一個元素的指針計算數組中的元素數
如果我給出指向A中第一個和最後一個元素的指針,我可以根據指針的地址和元素佔用的內存量來確定A中元素的數量嗎?或者內存中的數組結構不能像那樣工作。
我的想法是,如果我給出的指針元*開始和元*完成...
number of elements = (finish - start)/sizeof(Element)
這是邏輯思維?
請注意,STL中的「結束是一個*過去*結束」行爲允許範圍表示空範圍'start == end'。 –
RE:你的更新:C要求在對象之間不要插入填充,並且在數組中包含任何必要的填充以將它們排列在它們的'sizeof'中。例如'sizeof(struct {int I; char c;}}''通常是'sizeof(int)* 2' –
@BillyONeal。謝謝,聽起來正確; C++必須是相同的?我試圖記住這些保證 – Keith