我在分配內存時遇到了問題,就是Linux內核空間。我用下面的兩個結構中創建了鏈接列表:Linux內核空間中的動態內存分配
struct Node{
char *ptr;
struct Node *next;
};
struct List{
struct Node *head;
struct Node *tail;
};
現在,當我嘗試和分配列表結構[編輯,以反映正確的代碼]:
struct List *ll = kmalloc(sizeof(struct List), GFP_KERNEL)
我得到:
error: Initializer element is not constant
我在這裏做錯了什麼?我想補充的指針節點在我的列表結構因此我會通過添加它們:
struct Node n* = kmalloc(sizeof(Node));
n -> ptr = "Blah";
n -> next = NULL;
ll -> head = n;
我很確定Linux內核頭文件有鏈接列表的一些宏.... [here](http://kernelnewbies.org/FAQ/LinkedLists) –
謝謝,如果這不起作用,我會檢查一下。我之前看到了這一點,但認爲自己編碼會更容易。 C嚇到我了! – Alex
如果您希望稍後將代碼提交到內核中,您應該正確使用*內核的習慣和編碼規則。如果您被C嚇到了,則應該先編碼用戶級應用程序,而不是內核代碼。 –