struct request {
int dev; /* -1 if no request */
int cmd; /* READ or WRITE */
int errors;
unsigned long sector;
unsigned long nr_sectors;
char * buffer;
struct request * next; };
如上给你个结构体,在分配内存时,可能会疑惑分配内存会出现递归循环嵌套
在分配时给了前面int unsigned....等变量一个具体的内存大小,但是到struct request * next,你可能会认为内存给予的是struct request大小的内存,但同时又疑惑struct request 里包含struct request,这样子就搞不清楚啦
这是我大学时期感到疑惑的问题,今天对指针认识加深了些,记录下来,希望可以帮助到大家,觉得有帮助,给我个赞吧。
struct request * next; 指针里保存的是内存地址,所以分配时就是一个确定大小的内存。
就像int是保存的是个整数,在设计时给了它4字节,所以分配内存时也给了它4字节。
如上。