2010-01-14 77 views
2

我的教授指示我可以將結構放在(轉換)指針的內存中,以便更輕鬆地解釋數據。我今天在課堂上問了這個問題,這就是他說的。將結構覆蓋到u_char指針上

這不是編譯抱怨如何不能施放它。 我在做什麼錯?我將手動解析數據手動...

struct DataStruct 
{ 
    u_char DEST_ADDRESS[6]; 
    u_char SOURCE_ADDRESS[6]; 
}; 

struct DataStruct* testData; 
testData = (struct DataStruct*)pkt_data; 
+1

該編譯器給你什麼錯誤?你能構建一個完全(但很小)的測試用例,它不依賴任何未聲明/遺漏的東西嗎? – 2010-01-14 01:37:33

+0

你如何獲得6字節的地址?這是一個48位體系結構嗎? – Tarydon 2010-01-14 02:21:42

+0

@Tarydon - MAC地址(以太網,802.11等)爲48位。 – 2010-01-14 02:51:27

回答

1

你不能有一個函數以外的語句。

變化:

struct DataStruct* testData;    // definition okay outside function 
testData = (struct DataStruct*)pkt_data; // statement not okay outside function 

到:

struct DataStruct* testData = (struct DataStruct*)pkt_data; // definition with 
                  // initializer okay 
                  // outside function