您好、欢迎来到现金彩票网!
当前位置:彩之网 > 字串操作语言 >

C语言如何返回字符串

发布时间:2019-06-19 09:24 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部new 是动态分配(在堆上分配),你向系统要了 50 B 的内存,如

  堆上分配就是这情况,你不释放(delete一下),它就认为你在用着;不会再给别人用

  当然,你程序退出的时候,系统会替你回收、不过这样的习惯不好,你想,如果你写了死循环(操作系统、服务器程序等)、那里面不断滴在内存泄露,你就危险了、后来发现,不知不觉,内存怎么就不够用了,明明自己用的不多啊、、

  cin str; // 函数返回了,str的空间还是存在的,也就是不会重复申请、

  return str; // 而且,函数外面通过,指针也是可以访问他们的、、

  char str[100]; // 局部变量,默认动态局部变量,它在每一次调用的时候分配,

  cin str; // 函数返回了,str的空间也就不存在了,他是在,栈,上分配的、

  return str; // 函数外面通过,指针想访问?、非法!!!人都不在了,你喊他干嘛啊??

  }追问如果我要通过上面的这段程序自己去释放,那么,释放的代码应该怎样写呢?追答在主函数最后一条语句之后,return 0;之前添加

  1、C语言中,字符串不是一种基本类型,其本质是字符数组,因此直接返回字符串是不行的。因为C语言不允许例如char[10]fun(){}这样的函数定义方式。但是可以返回字符指针。返回一个动态分配的内存地址。

  展开全部使用new时,str在堆内分配,在没有调用delete前,都会被保留下来,所以输入数据被保存下来。

  由于aStr在栈内分配,当fanhui函数返回后,栈空间被销毁,发回的aStr是无效的。

  返回了栈内存,函数中分配的栈内存在函数运行结束后,就释放了。所以就会访问出错。

http://ibtlsports.com/zichuancaozuoyuyan/66.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有