运行以下代码后:
#include <stdio.h>
class Nil
{
};
int main()
{
Nil* A[20];
char* B[20];
for (int i=0;i!=20;i++)
{
A[i]=new Nil;
}
for (int i=0;i!=19;i++)
{
printf("A:%i\n",((int)A[i+1])-((int)A[i]));
}
printf("------------------------------------\n",5);
for (int i=0;i!=20;i++)
{
B[i]=new char;
}
for (int i=0;i!=19;i++)
{
printf("B:%i\n",((int)B[i+1])-((int)B[i]));
}
getchar();
}
输出:
A:7112
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
A:64
------------------------------------
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
B:64
为什么分配大小总是64?