Qt中如何用指针返回参数

在Qt中,使用指针作为返回值时遇到程序运行时错误。问题出现在调用`qDebug()<<*pStr1;`后,因为指针`pStr1`指向的内存被释放。通过阅读文章了解到Qt有自己的内存管理机制。解决方法是修改fun函数的实现,确保指针内存管理正确。修改后的代码使得程序能够正确地使用指针传参。
摘要由CSDN通过智能技术生成

问题:在qt中写一个方法,用指针做返回值,编译没有问题,但执行的时候程序会报错。
我的操作步骤:
1.新建一个Test的测试类,内容如下:
Test.h
这里写图片描述
Test.cpp
这里写图片描述
2.main方法去调用Test类中void fun(QString* pStr)方法,如下,程序编译执行一下,没有问题
这里写图片描述
3.接下来,打印一下main方法中参数pStr1的内容,理论下*pStr1的值会是”123456”,然后并非如此,如下图,编译时没有报错,而执行的时候程序报错了:
这里写图片描述
4.从步骤2到步骤3可以看出,代码是因为加了qDebug()<<*pStr1;后才报错的,那么问题就是在这里了,然后再看这个语句,心想,应该是*pStr1指向的内存被释放了,所以用*pStr1的时候就会导致程序崩溃,于是,做了如下验证(空间原因,下面直接写代码的形式呈现给大家):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值