我在C編程。 考慮下面的代碼。在使用C中的結構和指針時遇到問題
我的結構定義爲:
// Define the stack
struct stackNode {
char data;
struct stackNode *nextPtr;
};
typedef struct stackNode StackNode;
typedef StackNode *StackNodePtr;
以下變量用於:
StackNode topTracker; // The pointer of this stackNode will always point to the top of the stack
,我試圖完成以下功能。
char pop(StackNodePtr *topPtr){
char returnable;
// store the Node.data from the top of the stack
returnable = *topPtr.data; //[1]
// Set the next Node to the top of the stack
topTracker.nextPtr = *topPtr.nextPtr; //[2]
// return the Node data.
return returnable;
問題是我收到以下錯誤:在點[1] & [2]分別
「在一些成員data' in something not a structure or union" "request for member
nextPtr的要求不是一個結構或聯合」
如何我是否可以解決這個錯誤,並實際訪問指針* topPtr的數據和nextPtr?假設* topPtr在運行時將是一個指向實際StackNode的指針。
returnable =(* topPtr) - > data; 這就是那個。在整個堆棧中應用該邏輯,現在它正常工作。謝謝。奧斯瓦爾德。 – Baez 2011-05-28 10:24:12