嘿傢伙。這是一個非常簡單的問題,我敢肯定,但是我會像往常一樣讓自己糾結在C引用/指針中。我正在嘗試使用一系列鏈接列表來構建...排序隊列。基本上,我有一個結構,其內容和指向下一個元素的指針。我也有一個指向第一個和最後一個元素的指針。然後我有一個循環,將建立'排序'。我的問題是,要麼我的邏輯失敗,我沒有初始化隊列權限,或者我對C結構的知識失敗(這很可能),我最終只是創建一個結構並不斷提及它。未能建立「類隊列」結構 - 結構聲明存在問題?
我的測試代碼如下:
#include <stdio.h>
struct test {
int contents;
struct test *next;
};
main() {
struct test *first = NULL;
struct test *last = NULL;
int i;
for (i = 0; i < 2; i++) {
struct test tmp;
if (first == NULL) {
first = &tmp;
last = &tmp;
} else {
last->next = &tmp;
last = &tmp;
}
tmp.x = i;
tmp.next = NULL;
}
while (first != NULL) {
printf("%d\n", first->x);
first = first->next;
}
return 0;
}
運行此,我得到的第一個似乎指向一個測試結構有「1」,因爲它是「X」變量中的值輸出 - 所以不是我想要的最初一個。那麼,我是否在邏輯上失敗了,還是我沒有理解如何在循環中聲明新的單獨結構?或者兩者兼得?我很累...> _ <。
謝謝。
是的,我也這麼想。在C++世界花了很長時間,在那裏我一遍又一遍地被告知不要搶內存,因爲它是死亡......謝謝你。 – Stephen 2010-11-01 20:35:04