栈空间、栈上内存注意点
1、局部变量,临时变量都会放在栈空间、栈上内存。
2、类似于栈数据结构(先进后出),栈内存分配向低地址增长。
3、局部变量在栈上分配时,地址不一定上连续的,所以开发时不能依赖局部变量在栈上内存分配的地址连续性。
比如:redhat、ubuntu10 32位系统下,g++编译器下,验证确实是连续的。而在Ubuntu10 64位系统下,局部变量分配时,地址是会对齐的。
因此对这段代码,执行的结果是不确定的。
char src[]="123456789";
char dst[]="1234";
strcpy(dst, src);
printf("dst:%s src:%s\n", dst, src);//如果假定栈上局部变量地址分配时连续的,123456789,6789
posted on 2012-12-22 22:28 hj_daydayup 阅读(1115) 评论(0) 收藏 举报
浙公网安备 33010602011771号