1
我想組裝一個特定的結構來傳遞給函數的信息。該函數將地址和大小作爲參數。此外,信息的結構由技術文件給出,但包含動態部分。動態部分由重複的結構組成。
因此,想到在結構中使用結構數組。結構體內動態數組結構(在內核模塊中)
一個最小的例子看起來是這樣的:
struct nodeConfig_s{
int pdoCount;
int somethingElse;
struct pdo_s{
int flags;
int dataLength;
int id;
} pdos[];
}
我也明白,pdos[]
僅僅是一個指向數組的第一個元素。
但我想實現的是,結構數組將被放置在與外部結構相同的內存區域內。
有沒有辦法做到這一點?應當指出的是,我取決於一個GNU/Linux內核模塊中提供的功能(2.6.37.6)
如果有一種方法來管理鏈接列表中的信息(這是很容易消耗)並把它放在一個內存塊(序列化?)後,我將不勝感激任何幫助。
從文檔我知道的pdos[]
最大尺寸爲255,但我真的想避免定義大小的數組和浪費所有的記憶。
不幸的是'realloc的()'是不是在內核空間可用。 – Loofmann
'malloc()'可用,'realloc()'不可用?奇怪!然後我認爲你需要在內存中分配255個結構 – Gopi
更確切地說:在一個內核模塊中,你可以使用:'kmalloc()''''''''''''''''''' – Loofmann