如何在 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
的大小:它只是一个指针。
使用 "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
的大小:它只是一个指针。