找回密码
 立即注册
收起左侧

有关 char *使用的问题

1
回复
7073
查看
[复制链接]
累计签到:13 天
连续签到:1 天
来源: 2017-2-23 12:09:16 显示全部楼层 |阅读模式
1Qter豆
我这里加载了一个C库,使用其中一个函数输入需要使用到const char* 但我使用了却得不到理想的结果,请各位看看。
QString addNetValueQstr=ui->netAddressLineEdit1->text();//获取网络地址,QString类型   
QByteArray addNetValueQBA=addNetValueQstr.toLatin1();  

char *addNetValuecharP1=addNetValueQBA.data();   
addNetValuecharP=addNetValuecharP1;

     mb = modbus_new_tcp("127.0.0.1", 502);//就是这一句如果直接使用把"127.0.0.1"用addNetValueQBA.data()代替就没有问题但是我如果使用 mb = modbus_new_tcp(addNetValuecharP1, 502);就不行,


我用debug看了addNetValuecharP1显示的也是127.0.0.1,如果使用*addNetValuecharP1就在编译的时候显示错误modbus_new_tcp这个函数是这样的modbus_t* modbus_new_tcp(const char *ip, int port),按理说我用addNetValuecharP1应该是可以的啊,

回复

使用道具 举报

累计签到:25 天
连续签到:1 天
2017-2-23 12:34:12 显示全部楼层
调用mb = modbus_new_tcp(addNetValuecharP1, 502)的时候addNetValueQBA还在不在。
建议:
char *ip = new char[addNetValueQBA.size()];
memcpy(ip,addNetValueQBA.data(),addNetValueQBA.size());
modbus_new_tcp(ip , 502);
delete[] ip;
ip = NULL;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了