讓我來描述我的問題。我想創建一個包含多個項目的列表。我使用的是結構是這樣的:如何在不刪除內存內容的情況下重新初始化指向結構的指針? (在C)
typedef struct Node{
char *element;
node *next;
node *prev;
}node;
現在,在我的節目,我初始化指針指向這樣一個結構的指針:
temp = (node*)malloc(sizeof(node));
temp->element = (char*)malloc(sizeof(char)*maximum);
temp = InitElement(temp, maximum);
起初,我給我的程序是:
maximum = 10;
到目前爲止沒有問題。但我的問題現在開始: 編輯/感嘆。我會盡量簡化:
我正在製作一個表示中綴表達式操作數的元素列表。
我正在使用我的列表作爲堆棧。
每次我的程序在用戶的初始輸入中檢測到一個操作數時,它會彈出前面的2個節點,以便將它們組合到一個表達式中。
例如:如果在存儲234和2後檢測到'+',則它會彈出前2個節點,創建一個新節點(234 + 2)並將其推回。
現在我的問題。我需要我的字符串的最大大小是嚴格的10,除非它是一個括號,作爲一個元素的完整操作。這是我需要改變我的計劃。但我也需要它回到之後的初始狀態。如何在不影響列表中的任何現有節點的情況下通過temp來增加大小?
[不投結果'malloc'(http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc) – UnholySheep
你在做什麼詢問是真的不清楚... –
LL的目的是要有恆定的時間插入和刪除列表中的任何地方...如果你問是否可以增加元素的數量,那麼是的,你可以... – StoryTeller