2012-02-21 142 views
1

我試圖製作一個指向名爲「線程」結構的指針列表。這裏是我的嘗試:C指針列表(雙指針)

//kmalloc is my malloc, don't worry 
struct thread **process0 = kmalloc(sizeof(struct *thread)); 

// ^此行是給我解析錯誤

,基本上我想process0[0]是指向一個線程, process0[1]是一個指向另一個線程, process0[2]是一個指向另一個線程, 等

後來,我可能要訪問沿着以下線的「addrspace」成員之一(一個指針addrspace結構):

struct addrspace *test = process0[i][j]->addrspace; 

在哪裏我想proccess0[i]是線程指針的特殊列表,process0[i][j]是線程指針的特定列表中的特定線程指針......然後,我想通過訪問其成員之一運營商->

我一直在吸取指針算術的東西,並希望清理事情。非常感謝你。

+5

問題是什麼? – 2012-02-21 20:57:55

+1

process0 [i] [j]將是struct thread類型,所以你可以使用。不是 - > accessor – vmpstr 2012-02-21 21:01:19

+0

哦。我在聲明的第一行代碼中遇到了解析錯誤。 – JDS 2012-02-21 21:01:24

回答

1

想要的數據類型是「指向struct線」,或者:

struct thread **process0 = kmalloc(sizeof(struct thread *)); 
+0

謝謝,這解決了我的解析錯誤! – JDS 2012-02-22 05:11:46

0
struct thread **process0 = kmalloc(sizeof(struct * thread)*NUM_THREADS*NUM_PROCESSES_IN_EACH_THREAD); //kmalloc is my malloc, don't worry 

在你只是像一個指針那樣分配之前,如果我正確地閱讀它的話。這有幫助嗎?