C++栈内存分配剖析

来源:互联网 发布:小甲鱼windows教程 编辑:程序博客网 时间:2024/06/10 19:51

Environment:gcc

Code sec1:

int main(){int a=3;int b=3;int c=3;double d=6.0;int f=4;printf("%d\n",sizeof(double));printf("%d\n",&a);printf("%d\n",&b);printf("%d\n",&c);printf("%d\n",&d);printf("%d\n",&f);}

result:

gcc结果


Conclusion:gcc下按序分配,变量地址必须是其类型大小的整数倍。

Environment:visual stuido 2013

Code sec2:

void func(){printf("ok\n");}int main(){stu st;int a = 3;int b = 4;int c = 5;double p = 6.0;func();printf("%02X\n", &a);printf("%02X\n", &b);printf("%02X\n", &c);printf("%02X\n", &p);printf("OK\n");}

Result:

vs结果

vs结果


Conclusion:vc是以16字节为单位分配内存的。

以上,仅为个人意见,如有不同看法,欢迎评论指出,谢谢。

0 0
原创粉丝点击