| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 618 人关注过本帖
标题:[讨论][经验]数组的在内存中分配
取消只看楼主 加入收藏
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
 问题点数:0 回复次数:0 
[讨论][经验]数组的在内存中分配

数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。
问题:
有哪些情况数组可以在静态存储区上创建,哪些情况是在栈上创建的?

如果:
int fun()
{
int b[10]; //局部数组,栈内创建
int *p;
p="123465";//这时p位于栈上的存储区,还是静态存储区?p位于栈上 "123456"位于静态存储区。
}

例如有如下程序:
(1)
int a[10]; //全局数组,静态存储区创建
int fun()
{
int b[10]; //局部数组,栈内创建
}
int main()
{
int *p=(int *)malloc(sizeof(int)*10); //这是动态数组,堆上创建
}

(2)
int fun()
{
static char p[]={"sakjhkjshad"}; //也是在静态存储区域
}


如果还有什么意见请回帖。

[此贴子已经被作者于2007-8-25 0:53:48编辑过]

搜索更多相关主题的帖子: 内存 经验 
2007-08-25 00:51
快速回复:[讨论][经验]数组的在内存中分配
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014923 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved