C语言中删除变量和结构体初始化问题
各位大侠:
我编的程序里面有较大数组,但是只用了一次,感觉很浪费资源,所以想用完以后就把它从内存里释放出来,像matlab中的clear a; 那样。请求帮助。
另:在结构体定义时,我想在其中一个数组直接初始化为某值,但是该数组很大,不能一个一个输入,能不能在结构体中用for语句进行赋值?
谢谢。
[解决办法]
楼主发在C语言版,1楼给的应该是C++语言的吧。
楼主可能是想要类似这样的吧?
struct A { char* p;};A a;a.p = (char*)malloc(10000);int i;for(i = 0; i < 10000; ++i) { a.p[i] = 'a';}
[解决办法]
就把使用数组的代码连同数组的定义一起放在一个函数里吧。
函数调用结束,数组占用的堆栈空间自然被释放。
[解决办法]
释放内存的话可以考虑Malloc动态申请,在用完之后free释放;
[解决办法]
数组不可以显式释放吧,不过可以动态分配。那样你就可以管理这些内存了、