linux c 数组空间释放
请教高手一个问题,在linux下我知道一个数组的大小 如:long arry[100000]
这个数组是在循环里定义的,使用完出了循环体, arry数组有没有啥办法可以马上释放掉?
堆栈上的没有办法释放。
long * arry = malloc(sizeof(long)*100000);
free(arry);
这样的可以
操作系统管理的。你出了函数才释放呢。
所以可以在循环里搞个函数吗!
谢谢!我的这个long arry[100000]是在一个函数里定义使用的,在该函数调用使用完后,它的空间会得到释放吗?
是可以的。函数调用是在栈上的。
自动变量退出函数会释放的
用alloc直接在堆栈中分配,可以不用释放
在该函数调用使用完后,它的空间会得到释放
会的。
你可以使用{}限定这个数组的作用域
循环体里的临时数组是在堆栈里的,函数退出后,会自动释放。对程序内部而言,这种释放动作只是堆栈寄存器的加减而已。
非常感谢各位的回复!
相关问答:
写了个测试程序如下
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
请问VFP中如何调用C/C++函数?
你要调用什么功能的函数?要看看VFP中有没有对应的函数,如果有就省着再调用了。如果没有,可以将C/C++函数写个DLL或FLL,然后在VFP调用即可。
十豆三 老师,怎么才能修改自己的 ......
在自己的电脑上安装了ubuntu 就是想玩一下3D桌面,于是下载了
compizconfig-settings-manager
emerald
simple-ccsm
fusion
这些东西,安装完之后,我在电脑里点击了emerald ......
引用内容vsking 2009-12-25 22:56:52
现在是win2008和iis8的时代了,不要还停留在iis5时代,win2008被评为十佳操作系统之首不是偶然的,你要是..
我的问题是:
最近想买个服务器,看了dell上的系统定制选择,一些 ......