我在使用sizeof运算符(C++)时遇到了意外的结果。在主类中,我有以下几行代码:
double * arguments_ = new double();
*arguments_ = 2.1;
*(arguments_+1) = 3.45;
cout << (sizeof arguments_) << ' ' << (sizeof arguments_[0]) << ' '<< (sizeof arguments_)/(sizeof arguments_[0]);
这段代码输出结果为4 8 0
Double类型占用8个字节,而(arguments_[0])的大小为8。但是,为什么(arguments_)的大小没有以字节表示呢?(2*8 = 16)?sizeof运算符适用于数组吗?
*(arguments_+1) = 3.45
写入了未初始化的内存区域! - Gui13