首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

令小弟我疑惑的指针内存分配

2012-09-11 
令我疑惑的指针内存分配[codeC/C++][/code]#include iostream#include iomanipusing namespace stdc

令我疑惑的指针内存分配
[code=C/C++][/code]
#include <iostream>
#include <iomanip>
using namespace std;
class A
{
public:

A()
{
for (int i = 0; i<20; i++)
{
m_iArr[i] = 100;
}
}
private:
int m_iArr[20];
};
int main()
{
  A *a = new A;

int *p = new int;
char *q = new char;

cout <<sizeof(*a)<<endl;
cout << "a地址 =" << (int)a << '\t' << "p地址 = " <<(int)p << '\t'<< "q地址="<< (int)q <<endl;

return 0;
}

输出为
80
a地址 =3757968 p地址 = 3758096 q地址=3758144
请按任意键继续. . .


问题:
  为什么不管分配的指针为什么类型。指针地址都相差48.相差48是不是因为内存位数对齐?p地址 - a地址是不是等于a的内存大小?又或者,a地址 =3757968 p地址 = 3758096 q地址=3758144不是打印指针的地址?


[解决办法]
地址的话,用&
[解决办法]
你打印的是指针指向的地址吧?

热点排行