0
我试图更好地理解链表中的内存是如何分配的,所以我制作了一个简单的程序来查看地址的存储位置。链接列表基本内存(在C中)
#include <stdio.h>
struct node {
int data;
struct node* next;
};
int main()
{
struct node first;
struct node second;
struct node third;
struct node *aux; //pointer to go through list
first.data = 1;
second.data = 2;
third.data = 3;
first.next = &second;
second.next = &third;
third.next = NULL;
aux = &first;
while (aux)
{
printf("%p\n", aux); //printing each address
aux = aux->next;
}
return 0;
}
而我们得到的输出:
0x7fff14fabac0
0x7fff14fabad0
0x7fff14fabae0
所以在节点之间的1个字节的差异。
因此,基本上第一=第二 - 1.为什么sizeof(int)等于4个字节,并且我们只前进1个字节?
它是'16'字节。 – BLUEPIXY
清除它。谢谢! – Calin