decNumber.h:
typedef struct {
int32_t digits; /* Count of digits in the coefficient; >0 */
int32_t exponent; /* Unadjusted exponent, unbiased, in */
/* range: -1999999997 through 999999999 */
uint8_t bits; /* Indicator bits (see above) */
/* Coefficient, from least significant unit */
decNumberUnit lsu[DECNUMUNITS]; // decNumberUnit is int16_t and DECNUMUNITS is 1
} decNumber;
Test.cpp的:
decNumber a,b,c;
当我打印a,b和c的地址时,这就是我得到的:
a:0x7fff0d7a9858到0x7fff0d7a9864
b:0x7fff0d7a9864到0x7fff0d7a9870
c:0x7fff0d7a987c到0x7fff0d7a9888
a和b之间的字节是否重叠0x7fff0d7a9864有效吗?该程序最终会遇到分段错误。为什么呢?
非常感谢任何帮助!
答案 0 :(得分:1)
a和b之间的字节是否重叠0x7fff0d7a9864?
没有字节重叠。例如,0到5表示[0,1,2,3,4],5到10表示[5,6,7,8,9]。
该程序最终会遇到分段错误。为什么呢?
不可能。问题中的程序不完整,无法编译。它不会导致分段错误,因为没有可以运行的程序。