C语言:怎么销毁数组呢?
答案:6 悬赏:10
解决时间 2021-02-11 20:49
- 提问者网友:乏味沐染
- 2021-02-11 11:45
C语言:怎么销毁数组呢?
最佳答案
- 二级知识专家网友:晚安听书人
- 2021-02-11 12:05
要看数组所使用的内存空间。
1、如果是局部函数栈空间中的数组,有程序自动回收。
void f()
{
int a[2] = {1,2}; //局部栈空间上的数组,程序自动回收
} 2、如果是动态内存分配 的数组,在c语言中使用free()将其释放。回收有操作系统的堆管理器来进行操作。
void f()
{
int *p = (int *) malloc(2 * sizeof(int));
free(p); //释放
}
1、如果是局部函数栈空间中的数组,有程序自动回收。
void f()
{
int a[2] = {1,2}; //局部栈空间上的数组,程序自动回收
} 2、如果是动态内存分配 的数组,在c语言中使用free()将其释放。回收有操作系统的堆管理器来进行操作。
void f()
{
int *p = (int *) malloc(2 * sizeof(int));
free(p); //释放
}
全部回答
- 1楼网友:一池湖水
- 2021-02-11 16:09
额,free是用来释放动态数组的吧,
你可以尝试用申请动态数组的方法试试
不是大鸟哈,只是略懂点C而已
- 2楼网友:我的任性你不懂
- 2021-02-11 14:44
恩 其实数组不是很难的 c语言最难的是指针部分 指针就要靠理解 数组只是数字的组合形式 谭浩强的书一定要多看 理解 同时还要上机敲代码 上机真的很重要 如果你只看书 不上机 那你就永远学不好c语言 把书上代码试着改改 想想为什么 重在坚持
- 3楼网友:滚出爷的世界
- 2021-02-11 13:50
可以试试。。
free(imgCanny[0]);
free(imgCanny);
- 4楼网友:茫然不知崩溃
- 2021-02-11 12:51
malloc() 、calloc() 申请内存块
- 5楼网友:厌今念往
- 2021-02-11 12:12
你定义数组的方法是静态的,这样的变量是不能释放的,
如果是全局变量,只能随程序的结束而释放
如果是局部变量,则随着定义这个数组的那个函数的结束而自动释放。
如果想动态定义使用、释放内存,则通过指针方式来实现:
int *pImgCanny=NULL ;
int (*p2)[1000] ; //定义一个数组指针,可象使用二维数组一个来操作指针
pImgCanny=malloc( 1000*1000*sizeof(int) ) ;
p2=(int **)pImgCanny ;
p2[0][0]=100;
p2[0][1]=200 ;
用完后,释放:
free(pImgCanny);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯