这样会有什么后果?

seabc 2003-01-12 02:21:54
void Funcname ()

{
int *abc=new int[80000];
}

Funcname();
Funcname();
Funcname();
Funcname();
Funcname();

.....

反复调用它几十百遍,然后再:
delete[] abc;

这样会有内存泄漏吗?

还有:

void funcname()
int x=1;
int y=2;
{
.....
}

能够如此定义int x/int y吗?如果能,x,y是什么变量(全局?静态?...)
...全文
58 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
seabc 2003-01-12
  • 打赏
  • 举报
回复
C++Builder中如何定义全局变量.
比如上例,如何定义一个*abc指针,可以使它在一个函数内申请内存,而在另一个函数内释放它?
cdws222 2003-01-12
  • 打赏
  • 举报
回复
同意上面

不过这种方法申明变量已是C时代的事了
最好使用
void funcname()
{
int x=1,y=2;
}
如果想让x,y做这个函数的参数:
void funcname(int x,int y)
{

}
注意,此时不能给x,y指定值,只能在函数体内存取X和Y的值
Pubstar 2003-01-12
  • 打赏
  • 举报
回复
int *abc=new int[80000]是局部变量,你在函数外面无法执行delete[] abc;
一般用new申请的,你就应用delete清掉,否则是无法释放的。
int x=1;
int y=2;
它也是局部变量,当函数调用结束后,它会自动释放。如果想在函数内定义静态变量,应这样定义:static int x=1;

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧