网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月16日漏签0天
c++吧 关注:633,338贴子:2,114,751
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 14回复贴,共1页
<<返回c++吧
>0< 加载中...

怎么书写一个返回值为struct结构体的函数,结构体不需要malloc吗

  • 只看楼主
  • 收藏

  • 回复
  • 无情土木狗
  • ||
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我之前只学过C,习惯通过malloc来创建结构体
最近在看C++课,发现他们在书写一个返回值为'类'的函数时,函数内部并不是通过new或者malloc来创建类。
考虑到他说结构体和类相同,我就试着写返回值为struct结构体的函数,函数内部不通过malloc来创建结构体,发现可以正确返回。
我想问的是创建类或者结构体变量,和创建数组的原理不一样吗?难道创建结构体或类是直接在堆区申请空间?


  • Lily_Shayi
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不能返回局部变量的地址,会警告,即使能正确输出,堆栈满了话就会被覆盖吧


2025-09-16 20:07:01
广告
不感兴趣
开通SVIP免广告
  • Lily_Shayi
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
教错了


  • 国服第一阿飞
  • <
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因为类有复制构造函数和移动构造函数


  • 粘黏块
  • <<
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
c++非指针的结构体会自动复制或移动


  • 钱欢银
  • <
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
c语言也能直接返回结构体所以为什么要malloc呢


  • 起个名字
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你猜new是如何实现的?


  • 起个名字
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
new肯定在堆中申请空间啊,没人教你吗???????


2025-09-16 20:01:01
广告
不感兴趣
开通SVIP免广告
  • 起个名字
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
new不在堆里申请空间,new的意义是啥????


  • 小龙虾i
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
首先,局部变量是存在栈中的,在函数结束后会自动释放掉。
然后,malloc是在堆中请求内存空间,需要你自己手动free掉。
最后,new不但是在堆中请求内存空间还会调动构造函数,也是需要手动delete掉的。
回到你的问题1、“怎么书写一个返回值为struct结构体的函数”:在函数声明中指定返回类型为你需要的结构体类型。
2、“结构体不需要malloc吗”,当你需要自行管理对象的生存期时,你才会需要用malloc,当然C++我还是推荐用new


  • 疯狂大喜鹊
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你还不懂malloc怎么回事函数栈帧怎么回事


  • Yolone
  • ||
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
加static也行


  • 贴吧用户_QPQKZMa
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
返回的是值 不是指针 会有赋值操作
struct class 和内建int char这些都是数据类型
返回类型是值返回 对于class struct 会调用operaor = 或者拷贝构造赋值
返回指针才需要new


  • 无情土木狗
  • ||
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
嗯嗯,就是说可以这样写返回值为class或struct的函数是吗?main函数里返回的class,struct所占的内存空间,后续不会被覆盖是吗?


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 14回复贴,共1页
<<返回c++吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示