如何在C中获取结构的地址?

如何在C中获取结构的地址?,第1张

概述我是C的绝对新手所以这可能是一个愚蠢的问题,警告! 如果有人想知道背景,它的灵感来自于学习困难之路中的Exercise 16额外学分. 假设这些进口: #include <stdio.h>#include <assert.h>#include <stdlib.h> 给出一个像这样的简单结构: struct Point { int x; int y;}; 如果我在堆上创建它的实 我是C的绝对新手所以这可能是一个愚蠢的问题,警告!

如果有人想知道背景,它的灵感来自于学习困难之路中的Exercise 16额外学分.

假设这些进口:

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

给出一个像这样的简单结构:

struct Point {    int x;    int y;};

如果我在堆上创建它的实例:

struct Point *center = malloc(sizeof(Point));assert(center != NulL);center->x = 0;center->y = 0;

然后我知道我可以在内存中打印结构的位置,如下所示:

printf("Location: %p\n",(voID*)center);

但是如果我在堆栈上创建呢?

struct Point offCenter = { 1,1 };

位于堆栈中的值仍然在内存中的某个位置.那么我如何获得这些信息呢?我是否需要创建指向我的新on-the-stack-struct的指针然后使用它?

编辑:哎呀,猜测这是一个显而易见的.感谢DanIEl和Clifford!为了完整性,这里是使用&的打印示例:

printf("Location: %p\n",(voID*)&center);
解决方法 随着“地址”运算符一元&amp ;.
struct Point offCenter = { 1,1 };struct Point* offCentreAddress = &offCentre ;
总结

以上是内存溢出为你收集整理的如何在C中获取结构的地址?全部内容,希望文章能够帮你解决如何在C中获取结构的地址?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1241238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存