VC++中 char name[20] 和 name=new char[20] 有什么不同?
答案:1 悬赏:80
解决时间 2021-01-26 16:04
- 提问者网友:最美的风景
- 2021-01-26 01:24
VC++中 char name[20] 和 name=new char[20] 有什么不同?
最佳答案
- 二级知识专家网友:枭雄戏美人
- 2021-01-26 01:33
1. char name[20] 自动申请内存空间,也会自动释放内存空间。如:
char* func()
{
char name[20];
return name;
}
调用完 func 函数之后,name占用的内存空间被自动释放,修改 name 指向的内存空间将会造成程序崩溃。
---------------
2. name=new char[20] 动态申请内存空间,需要手动释放内存空间。
char* func()
{
char name[] = new char[20];
return name;
}
调用完 func 函数之后,name占用的内存空间没有被释放,可以正常使用 name 。
如果要手动释放 name 的内存空间,请使用 delete[] name; 。
char* func()
{
char name[20];
return name;
}
调用完 func 函数之后,name占用的内存空间被自动释放,修改 name 指向的内存空间将会造成程序崩溃。
---------------
2. name=new char[20] 动态申请内存空间,需要手动释放内存空间。
char* func()
{
char name[] = new char[20];
return name;
}
调用完 func 函数之后,name占用的内存空间没有被释放,可以正常使用 name 。
如果要手动释放 name 的内存空间,请使用 delete[] name; 。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯