社区
C语言
帖子详情
关于内存释放的问题
myyan
2004-01-16 08:46:47
char *init()
{
char *p=(char *)malloc(52*4*sizeof(char));
......
return p
}
void main()
{
char (*Arr)[4];
Arr=init();
}
在init()中动态申请内存,主函数中要用到申请的内存,请问在用完后怎样释放?
...全文
71
11
打赏
收藏
关于内存释放的问题
char *init() { char *p=(char *)malloc(52*4*sizeof(char)); ...... return p } void main() { char (*Arr)[4]; Arr=init(); } 在init()中动态申请内存,主函数中要用到申请的内存,请问在用完后怎样释放?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ccwwcsdnc
2004-01-16
打赏
举报
回复
这样做:
main ()
{ float **f=NULL;
f = alloc2float(80,60); //申请二维数组f[60][80],注意参数次序;
if(f==NULL){ printf("alloctet error!\n"); exit(); }
.....
free2float(f);
}
/* allocate a 2-d array of floats */
float **alloc2float(size_t n1, size_t n2)
{
return (float**)alloc2(n1,n2,sizeof(float));
}
/* free a 2-d array of floats */
void free2float(float **p)
{
free2((void**)p);
}
/* allocate a 2-d array */
void **alloc2 (size_t n1, size_t n2, size_t size)
{
size_t i2;
void **p;
if ((p=(void**)malloc(n2*sizeof(void*)))==NULL)
return NULL;
if ((p[0]=(void*)malloc(n2*n1*size))==NULL) {
free(p);
return NULL;
}
for (i2=0; i2<n2; i2++)
p[i2] = (char*)p[0]+size*n1*i2;
return p;
}
/* free a 2-d array */
void free2 (void **p)
{
free(p[0]); //释放时,一维一维的释放,与申请时的次序相反。
free(p);
}
aph
2004-01-16
打赏
举报
回复
char (*Arr)[4];
Arr[0] = init();
free(Arr[0]);
应该这样吧!
myyan
2004-01-16
打赏
举报
回复
就这样吧。
本来我用栈内存分配,函数结束后就没有了,每次都是乱码,可能是栈内存释放后容易被抹掉,或者栈内存释放后又变回原来的值了。而堆内存不容易去掉,尤其是大内存的机器,要等用到的时候才能抹掉。
weimj
2004-01-16
打赏
举报
回复
free就释放了,一时还可以用也很正常,因为free并没有把数据抹掉,只是标志内存可以再次被分配.
格兰特杨
2004-01-16
打赏
举报
回复
要不然这样,但不确定。实际上free后是可能取到数据的,除非在free前用memset清零。
char (*Arr)[4];
Arr=init();
for (i = 0; i< 52; i++)
{
free Arr[i];
}
建议你把Arr声明成 char **Arr可能会好些。
big_d
2004-01-16
打赏
举报
回复
free(Arr);
Arr=NULL;
myyan
2004-01-16
打赏
举报
回复
我想创建的是二维数组,使用Arr指向函数中的内存,本来觉得以为可以释放掉,但是
释放后通过指针还可以取到数据。不知道有没有释放成功。
格兰特杨
2004-01-16
打赏
举报
回复
这里声明成Arr为指向char数组的指针...。//而不是char指针的数组。
根据怎样申请就怎样释放的原则,不适用delete,直接free(Arr)我觉得就可以!
讨论!
dddd8888
2004-01-16
打赏
举报
回复
你这样写就不对
victor_cui
2004-01-16
打赏
举报
回复
free(Arr)即可
workhand
2004-01-16
打赏
举报
回复
指向一个空的
内存
泄露Demo leaky app
当我们谈论“
内存
泄露Demo leaky app”时,我们指的是一个应用程序在使用
内存
后未能正确
释放
它,导致系统资源的浪费和可能的性能
问题
。下面将详细讨论
内存
泄露、其对应用程序的影响以及如何检测和修复
内存
泄露。 ...
C/C++指针经典资料大全
-
内存
释放
:`free`函数用于
释放
动态分配的
内存
,防止
内存
泄漏。 - 指针和数组的关系:数组名实质上是首元素的地址,因此可以将数组名作为指针使用。 3. **指针与函数** - 函数参数可以是指针,这样函数可以修改...
UWSGI关于
内存
释放
问题
问题
:实际应用过程中发现UWSGI没有主动
释放
内存
,导致
内存
不断增大。 办法: --evil-reload-on-as 100 --evil-reload-on-rss 100 虚拟
内存
或者实际
内存
大于100M,UWSGI主进程将重启子进程 UWSGI...
关于堆
内存
和栈
内存
释放
提供JS代码执行的环境和存储基本类型值 堆
内存
释放
让所有引用堆
内存
空间地址的变量赋值给Null 即可 (没有变量占用这个堆
内存
了 浏览器会在空间的时候把它
释放
掉) 栈
内存
释放
一般情况下,当函数执行完成,所形成...
iframe
内存
释放
问题
随着Ajax的发展,使用javascript的RIA应用越来越多,用户在同一页面中驻留的时间越来越长,
内存
泄露和
内存
占用
问题
越来越值得RIA开发者的注意,当RIA应用中
内存
得不到合理的
释放
,
内存
使用量会持续上涨,造成RIA应用...
C语言
70,024
社区成员
243,253
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章