如何在 C 中获取结构的起始地址和结束地址?

How can I get the start and end address of a struct in C?

使用 "address-of" 一元运算符 &。我可以知道结构的起始地址。

 struct Point {
     int* data;
     int x;
     int y;
 };

 struct Point offCenter = { 1, 1 };
 struct Point* offCentreAddress_start = &offCenter ;

如何确定结束地址(offCenterAddress_end)?

你不需要sizeof

struct Point offCenter = { 1, 1 };
struct Point* offCentreAddress_start = &offCentre;
struct Point* offCentreAddress_end = &offCentre + 1;

根据定义,指针算术是以指针类型大小的倍数进行的。这就是数组索引的工作原理。

关于您的评论:将 data 指向 malloc 的内存(或其他任何东西)不会改变 data 的大小:它只是一个指针。