字符串指针和字符数组的诡异问题
来源:互联网 发布:日本经济数据怎么查 编辑:程序博客网 时间:2024/06/05 19:41
背景:QT编程,dateTimeEdit是一个QCombobox下拉菜单控件,从中读取事件日期转换为char 类型,eventLogMessage.shartDateTime是char * 类型。
这是最原始的实现方法:
QDateTime dd = ui->dateTimeEdit->dateTime();
QString tt = dd.toString("yyyy-MM-dd hh:mm:ss");QByteArray aa =tt.toLatin1();
eventLogMessage.shartDateTime=aa.data();
第一种修改方法:做一个函数实现,函数输入参数为ui->dateTimeEdit->dateTime(),返回值为aa.data();
char *dvr_eventlog::dateTimeToChar(QDateTime dateTime)
{
char *re;
QString str=dateTime.toString("yyyy-MM-dd hh:mm:ss");
QByteArray ba=str.toLatin1();
re=ba.data();
return re;
}
主函数调用处:
eventLogMessage.shartDateTime=dateTimeToChar(ui->dateTimeEdit->dateTime());
结果是:printf打印验证结果是对的,但是后面这个时间数据用于SQLite数据检索读出的时候就有问题了。
第二种修改方法:做一个无返回值的函数,使用参数传出方式返回aa.data(); 值
void dvr_eventlog::dateTimeToChar(QDateTime dateTime,char *tmp)
{
QString str=dateTime.toString("yyyy-MM-dd hh:mm:ss");
QByteArray ba=str.toLatin1();
strcpy(tmp,ba.data());
}
主函数调用处:
char tmp[50];
dateTimeToChar(ui->dateTimeEdit->dateTime(),tmp);
eventLogMessage.shartDateTime=tmp;
结果是:printf打印的结果与前两种方式完全相同strlen长度也相同,但这样就可以检索出来(与之前相同的日期时间,格式也相同)
第三种修改方法:还是做一个无返回值得函数,使用两级指针返回字符串
void dvr_eventlog::dateTimeToChar(QDateTime dateTime,char **tmp)
{
QString str=dateTime.toString("yyyy-MM-dd hh:mm:ss");
QByteArray ba=str.toLatin1();
*tmp=ba.data();
}
主函数调用处:
char *tmp;
dateTimeToChar(ui->dateTimeEdit->dateTime(),&tmp);
eventLogMessage.shartDateTime=tmp;
疑问:这样做有问题吗?
最终结果:采用方式二
- 字符串指针和字符数组的诡异问题
- 字符串指针和字符数组的区别
- 字符串指针和字符数组的区别
- C常见问题之字符串数组和字符指针数组问题
- 关于字符串 字符数组 字符型指针的问题
- 字符串,字符指针和字符数组的sizeof和strlen
- 字符串指针和字符数组
- 字符数组和字符串指针
- 处理字符串的字符数组和字符指针
- 字符数组,字符串,字符指针和NULL的故事
- 字符串截取以及字符数组和字符指针的区别
- 数组、指针、字符串(三)探究字符数组、字符指针和字符串的相互联系
- 字符数组、字符指针和字符串
- 字符数组、字符指针和字符串
- 关于C语言字符数组、字符串和指针的相关问题
- 关于字符指针和字符数组的小问题
- 函数内返回字符数组和字符指针的问题
- 指向字符串的指针 和 字符数组的区别
- hdu 1281 棋盘游戏 枚举+最大匹配
- unity NGUI的UIInput输入的UILabel 输入超过输入框长度的文字不跟着光标走的问题解决方案-maxLines
- 打工不如创业 千元投资大回报 增值电话平台
- 在QT环境下,实例分析构造函数与析构函数的执行时机
- hdu 1728 逃离迷宫(搜索:BFS+优先队列)
- 字符串指针和字符数组的诡异问题
- 【JAVA】关于new在父子类中的使用
- 吸费电话增值电话设备 声讯平台 欢迎您的加盟
- 我就是我,颜色不一样的花火...
- 电话吸费加盟 穷人创业! 赚钱快
- OWI之direct path write
- 回拨吸费电话 打工不如创业 加值电话平台
- vi显示行号
- 【新手教程】如何向App Store提交应用