看到很多关于返回结构体的讨论,分成两派,一派是说如如果这个结构体是局部变量则有风险,因为局部变量会在调用函数结束后被释放,释放后这个结构的成员就可以被任何人修改,也就是时通过返回结构获得的结构会被随时改变,风险不可小觑。
这个问题的关键,其实是要看返回的是个什么东西,如果返回的是那个局部结构体的首地址,上面这种说法是对的,但是如果返回的是整个结构的拷贝,那就不会有上文说的风险
不知道C/C++到底是怎么处理的,有权威说法吗?
收起
感觉没有好坏之分,看你使用的情况,如果只是当临时的,就局部
需求决定你的使用,适合的才是好的
报告相同问题?