2017-08-10 95 views
-1

我目前正在嘗試遍歷C++中的struct var。我有一個結構變量,但我需要訪問結構的特定元素。C++通過遞增指針逐位遍歷低谷結構

someStruct { 
    int a; 
    int b; 
    bool c; 
    ... 
}; 

& someStructVar + 1將由結構的大小增加內存。但是我需要一個接一個地增加內存地址。有沒有人有一個想法,如果這是可能的?還有其他方法嗎?

+2

使用指針對這樣的元素進行迭代是災難的祕訣。你確定你知道他們是如何被包裝進這個結構的嗎?你確定知道使用什麼填充來使它們正確對齊? – tadman

+0

C中最小的可尋址單元是字節,而不是位,所以你不能這樣做。 – dasblinkenlight

+0

@dasblinkenlight,這不是唯一的問題:) – SergeyA

回答

0

你要求的是反射,其中C不支持。您無法獲得struct的字段列表並遍歷它們。

您需要按名稱明確調出每個字段。

+0

這是一個C++問題,而不是C,但同樣的事情適用。 – tadman

-1

你不能通過指針算法「迭代」結構體的成員,這在C++中是不允許的。

您可以迭代指針arithemtics的唯一方法是C風格的數組。