Qt学习路程(四)QString转char[]数组

这个问题是我在项目中遇见最简单,却调试时间最长的一个问题。

下面我把我的解决方法发出来供大家参考。

这是结构体定义。

    
    typedef struct PersonData{
    int use_id;
    char name[10];
    int passwd;
    int passwds;
    int money;
    int flag;
    }Recv_MSG;

下面是对从lineedit上读取的QString进行转换到char name[10]里面去。

    char* ptr;
    QByteArray ba;
    QString str = ui->namelineEdit->text();
    ba = str.toLatin1();
    ptr = ba.data();
    memcpy(p->name,ptr,10);        //就是这一句,必须加,不然不只是把指针指向了值,并没有赋值

重点就是最后一句,memcpy(),把ptr例转换的值,赋给p->name。不然,你要是传递结构体,就只是传过去一个指针,并没有内容。

你可能感兴趣的:(Qt)