c - 结构体指针和内存位置

标签 c struct

struct Data
{
    int num;
    struct *next, *prev;
};

typedef struct Data sData;

int main()
{
    sData *head;
    head = NULL;
    printf("%lld %lld", head, &head);
    return 0;
}

我试图更深入地了解结构指针及其内存分配。为什么打印的值不同?

最佳答案

查看您的代码,head 是一个变量。事实上,它是 SData 结构上的指针,这一事实对于理解没有什么用处:

  • head返回变量head的值,这里为NULL。
  • &head 返回变量 head 的地址,这里它取决于您的编译器和链接器配置。由于 head 是局部变量,因此它可能是堆栈中某个位置的地址。

关于c - 结构体指针和内存位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50025596/

相关文章:

c - 如何在 C 中手动将环境值设置为整数零

c - keep-alive curl C https POST

c - 外部结构体声明,但结构体定义就在上面

C - 使用内部已存在的指针扩展结构数组

C++数组指针在结构中保留内存位置但丢失所有值

c - 在 C 编程中将结构传递给函数

javascript - 使用来自 javascript 的 const *const *inputs 调用 C WebAssembly 函数

c - Motif 编程和 UTF-8

c - 共享内存不分配?

pointers - Golang 中 []*Users 和 *[]Users 的区别?