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

函数内部数组与指针有什么不同解决方法

2012-03-11 
函数内部数组与指针有什么不同函数内部数组与指针有什么不同??voidtest(){charch[10]aaa char*pChbb

函数内部数组与指针有什么不同
函数内部数组与指针有什么不同??
void   test()
{
    char   ch[10]   =   "aaa ";
    char   *pCh       =   "bbb ";
}
数组放在栈内存,指针放在堆内存,
这里的没有用malloc的   pCh   还用释放吗,它是栈内存的,还是堆内存的

[解决办法]
即不是栈也不是堆,是静态存储区,和全局变量一样的位置。
[解决办法]
ch[10]是栈内存, 没有指向
pCh是栈内存, 指向的字符串在常量区

malloc的内存在堆中
[解决办法]
void test()
{
char ch[10] = "aaa "; //在栈中
char *pCh = "bbb "; // pCh 在栈中, "bbb " 在常量区,不是堆上
}

所以不需要 释放

[解决办法]
指针不一定在堆内存,只是new和malloc返回指向对内存的空间的指针
不用释放
他应该是指向常量数据区的指针

热点排行