c语言在子函数中使用malloc,会自动free吗?return后我该怎么办?

、浅浅笑 、浅浅笑 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如题,我在子函数中用malloc申请了空间,返回一个数组,但是return 0后我发现没有执行接下来的free,我在主函数中该如何释放这个空间?求教各位。

/*子函数体片段*/
return str;
free(str);//释放
str = NULL;//置空
}

int main()/*主函数*/
{
printf("%s", get_num_bit());
system("pause");
return 0;
}

如何在主函数中释放申请空间?
...全文

相关推荐

C语言基础之malloc和free函数详解

主要介绍了C语言基础之malloc和free函数详解的相关资料,需要的朋友可以参考下

weixin_38706747

C语言实现malloc和free

用C自己实现malloc和free,需要的可以看下,没实际用处,不过可以了解C的原型原理

enjack_droid

C语言中free函数的使用详解

free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下

weixin_38724229

C语言中的malloc使用详解

一、原型:extern void *malloc(unsigned int num_bytes); 头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。) 功能:分配长度为num_bytes字节的内存块 说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。 当内存不再使用时,应使用free()函数将内存块释放。 举例: #include #include int main() { char *p; p=(char *)mal

weixin_38643212

C语言中多维数组的内存分配和释放(malloc与free)的方法

如果要给二维数组(m*n)分配空间,代码可以写成下面: 代码如下:char **a, i; // 先分配m个指针单元,注意是指针单元 // 所以每个单元的大小是sizeof(char *) a = (char **) malloc(m * sizeof(char * )); // 再分配n个字符单元, // 上面的m个指针单元指向这n个字符单元首地址 for(i = 0; i < m; i++) a[i] = (char * )malloc(n * sizeof(char )); 释放应该是: 代码如下:int i; for(i=0;i<m;i++)     free((void *)a[i

weixin_38705788
评论 4
收藏 已收藏
分享
返回顶部
、浅浅笑
C语言 70,039 成员 243,237 内容