C语言中遇到一个这样的问题:子函数中malloc了一个指针存储数据,作为该子函数的返回值,return到主函数。

那么这个指针应该在哪里释放呢?

显然不能在子函数里释放,否则返回值没有意义。这样就应该在主函数里释放,主函数里申请一个指针,指向这个返回值,使用之后释放。

更好的做法:在主函数里申请一段内存空间,初始化为0,传入子函数中对数据进行修改,不设返回值。该指针指向的数据传回主函数使用,使用完毕后释放。谁申请谁释放,比较清晰。

子函数的指针释放问题相关推荐

  1. C语言 子函数改变指针指向的值

    C语言 子函数改变指针指向的值 首先,为了防止出错,我还在在<C primer plus>中再看了一次概念. 如下: 指针是个左值,就跟我们定义一个 int a = 10;一样. 接着再查 ...

  2. C语言关于传入子函数的指针形参的地址改变

    这个问题是在学习链表时遇到的,在做实验二的过程中想要实现插入(或删除)操作时,我们会调用子函数传入首元结点地址作为指针形参,通过一系列变化(一般是循环)找到待处理结点后进行相应处理. 我们总能轻易地改 ...

  3. 关于调用子函数给主函数指针分配内存

    典型的错误例子如下 在这个主函数的指针给子函数传递一个指针,而在子函数中形参有开辟了一块内存,此子函数的指针的内存里存储的地址与主函数是同一地址, 即主函数的指 针和子函数形参的指针都指向同一块内存的 ...

  4. 二维数组的动态内存申请,采用子函数的方式 为二级指针申请内存,和释放内存

    原理:二级指针,行指针+列指针 照着葫芦画瓢就行. 方法一:用c语言malloc实现 #include<cstdio> #include<iostream> #include& ...

  5. 用指针、子函数的方法去一维数组中所有元素的平均值,并放在a[0]处

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p142 7.1.2 上级实训内容 [实训内容7]用指针.子函数的方法去一维数组中所有元素的平均值,并放 ...

  6. 【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )

    文章目录 前言 一.业务子函数接口定义要点 二.完整代码示例 前言 字符串开发模型 : strstr-while/do-while 模型 : 在 字符串 中 查找 子串特征 ; 两头堵模型 : 两个指 ...

  7. 二级指针在子函数中申请内存的两种方式

    二级指针:在主函数中申明变量,在子函数中分配内存,有两种方式返回二级指针.在这个过程只有深刻理解了C的函数调用模型,以及指针的内存模型,才能够掌握好. #pragma once #include &l ...

  8. C语言子函数返回二维数组讨论

    C语言中,在子函数中将一个二维数组返回 都知道,在子函数中,一定不能返回一个局部变量的指针,局部变量在子函数中进行创建,子函数调用结束后,该指针将被释放掉. 如果被指针所指向的该内存空间被别的程序占用 ...

  9. C++ 笔记(14)— 指针(指针声明、取地址、取值、new/delete、NULL指针、指针运算、指针数组、数组指针、指针传递给函数、从函数返回指针)

    1. 声明指针 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指 针存储其他变量地址之前,对其进行声明. 指针变量声明的一般形式为: type * ...

最新文章

  1. 上海.NET技术交流会
  2. Android 设定横屏,禁止屏幕旋转,Activity重置 [更新视频播放器相关]
  3. 使用NSCondition实现多线程同步
  4. UI组件之TextView及其子类
  5. CISC-235 Fall 2018 Assignment
  6. Solr Zookeeper ACL权限配置
  7. c语言p1口转向灯实验,实验三模拟汽车左右转向灯控制.doc
  8. Objective-C路成魔【11-多态性、动态类型和动态绑定】
  9. js数组常用方法总结(包括ES6)
  10. Leetcode 刷题笔记(十七) —— 二叉树篇之公共祖先问题
  11. pandas(综合测试)
  12. python 导入自定义的包
  13. 消防水池液位报警装置设置参数
  14. 第26讲—项目6—存款利息计算器
  15. java做2048_java版实现2048游戏功能
  16. 《Python编程:从入门到实践》练习16-2:比较锡特卡和死亡谷的温度
  17. linux基础-自查
  18. 资深程序猿冒死揭开软件潜规则:无法维护的代码
  19. 如何提高工作效率之电脑文件的精确管理
  20. 【qttabbar】常用设置分享

热门文章

  1. RS485集线器知识详解
  2. 如何判断是不是真正的物理隔离网络光端机
  3. 【渝粤题库】广东开放大学 互联网营销概论 形成性考核
  4. 物联网蓝牙模WiFi无线模块技术和ZigBee技术再智能家具领域发展对比?
  5. 工业控制中无线局域网应用前景分析
  6. 移动流量转赠给好友_私域流量的五大认知误区
  7. 天地一体化信息网络发展与拟态技术应用构想
  8. python 生意_本周互联网关注(2015515):劳动人民的生意经、python好还是go好
  9. mysql 注入 file load_Mysql注入中into outfile和load_file()总结
  10. java+语音识别+谷歌_JAVA使用谷歌语音识别API