• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

函数分配内存问题

14e8359146b3c99c 2019-04-10 浏览量:908
程序的enter函数是将一个字符串数组名 和一个字符串名,还有字符串数组的数目传到函数里,字符串数组里的每个字符串都动态申请内存。先输入字符串 ,然后将字符串复制给字符串数组里各个元素。
程序没有报错和警告,也没有输出但是没法正常运行。
而且我好像是第二次遇到这种在自定义函数内申请内存,然后没法正常运行的情况了,百度上说指针越界的问题,看不大懂,请大佬们解惑,谢谢。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 首先这种动态分配内存不一定能成功的,最好读取一下返回值,确认是否分配到了

    然后使用这块内存前,先判断一下指针是否为空,防止操作了不合法的地址

    • 发布于 2019-04-11
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 是C语言吗,建议将程序上传看看具体的情况,C语言一般做字符串处理,如果字符串变量,需要给字符串一个具体的存储位置(数组),而不仅仅是一个指针,以防出错
    • 发布于2019-04-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 确实,这种涉及大量指针操作的情况比较容易出错,但需要针对具体程序来分析。

    我看见你在自定义函数内申请了内存,对此需要注意要检查是否申请成功了,只有成功了才进行下一步操作。

    所以一般涉及指针的函数都是

    int XXXX( atype *myin   btype * myout ) 类似的声明定义,其中返回参数都是来返回调用是否成功的,atype,btype等是数据类型,比如int,char等等,也可以是结构体类型。

    对于涉及指针的函数,一般至少有输出接收的指针参数,反而输入可能是可选的。

    • 发布于2019-04-11
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

函数分配内存问题