gpt4 book ai didi

使用C分配地址时的困惑

转载 作者:行者123 更新时间:2023-11-30 21:24:03 26 4
gpt4 key购买 nike

我试图将一个名为node的结构的地址分配给另一个名为tmp的结构,该结构具有相同的类型--Node。但是tmp的地址总是比node的地址小8。这是为什么?谢谢!

  #include <stdio.h>
#include <stdlib.h>

typedef struct _node
{
int data;
struct _node *next;
}Node;

int main()
{
Node *node = (Node*)malloc(sizeof(Node));
Node *tmp;
tmp = node;

printf("%d\n",&node);
printf("%d\n",&tmp);
}

最佳答案

我猜您希望两行的输出相同。

为此,您必须打印指针的值,而不是指针的地址。

之后

tmp = node;

tmp 的值与 node 的值相同,但两个变量的地址始终不同。

我怀疑你打算使用:

printf("%p\n", node);  // Use %p for pointers, not %d
printf("%p\n", tmp);

关于使用C分配地址时的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39462834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com