栈空间、栈上内存注意点

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)    收藏  举报

导航