linux kernel变长数组使用示例

在一个结构体中,定义了长度为0的数组,而我们有希望这个变成数组和结构体是物理连续的,如图所示:
linux kernel变长数组使用示例

可以参考linux kernel的代码,如下所示:

struct skcipher_sg_list {
	struct list_head list;
	int cur;
	struct scatterlist sg[0];
};
#define MAX_SGL_ENTS ((4096 - sizeof(struct skcipher_sg_list)) / \
		      sizeof(struct scatterlist) - 1)

sgl = sock_kmalloc(sk, sizeof(*sgl) + sizeof(sgl->sg[0]) * (MAX_SGL_ENTS + 1)
上一篇:博弈论-公平组合游戏


下一篇:[博弈论]移棋子游戏