函数内部数组与指针有什么不同
函数内部数组与指针有什么不同??
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返回指向对内存的空间的指针
不用释放
他应该是指向常量数据区的指针