首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

静态内存区?解决办法

2012-03-09 
静态内存区?chara[]“hello”a[0]‘X’char*p“world”//注意p指向常量字符串p[0]‘X’/*错误*/为什么指针

静态内存区?
char   a[]   =   “hello”;
a[0]   =   ‘X’;
char   *p   =   “world”;   //   注意p   指向常量字符串
p[0]   =   ‘X’;/*错误*/
为什么指针p   指向位于静态存储区?
另外哪些变量会自动分配在静态存储区?


[解决办法]
所有的常量都在静态区,hello在,world也在,常量字符串都在那
一些没有办法化成立即数的数字也会放在那,比如int x[5] = {1,2,3,4,5};这5个数字也是在那里。

char a[] = “hello”;在栈上生成一个数组,并拷贝静态区的hello字符常量进去
char *p = “world”; 指向静态区常量字符串(静态区常量不可以修改)

当然不同的OS的执行文件结构会不一样,
另外,看看反汇编,就一切问题都清楚啦

热点排行