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

小小的疑惑

2
回复
6240
查看
[复制链接]
累计签到:4 天
连续签到:1 天
来源: 2013-12-4 16:33:22 显示全部楼层 |阅读模式
1Qter豆
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include "QDebug"
  4. #include "QString"
  5. struct student
  6. {
  7.     QString name;
  8. };

  9. MainWindow::MainWindow(QWidget *parent) :
  10.     QMainWindow(parent),
  11.     ui(new Ui::MainWindow)
  12. {
  13.     ui->setupUi(this);
  14.     QString str = "qqqq";
  15.     student *stu = (student *)malloc(sizeof(student));
  16.     stu->name = str;

  17. }

  18. MainWindow::~MainWindow()
  19. {
  20.     delete ui;
  21. }
复制代码
编译通过,但是运行会出错。 stu->name = str;这条语句有问题。    这是为什么


最佳答案

查看完整内容

你应该也把报错的那段信息也贴出来,才好判断什么错误。 另外,我不懂为什么你要在c++中用c的内存分配,这是很容易出问题的。你试试把上面的struct改成下面这样:然后下面你的mainwindow构造函数里面改成这样:
回复

使用道具 举报

尚未签到

2013-12-4 16:33:23 显示全部楼层
你应该也把报错的那段信息也贴出来,才好判断什么错误。

另外,我不懂为什么你要在c++中用c的内存分配,这是很容易出问题的。你试试把上面的struct改成下面这样:
  1. class student
  2. {
  3. public:
  4.       student() {this->name = "";};
  5.       QString name;
  6. }
复制代码
然后下面你的mainwindow构造函数里面改成这样:
  1. student *stu = new student();
  2. stu->name = str;
复制代码
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-12-4 19:16:10 显示全部楼层
Joey_Chan 发表于 2013-12-4 17:31
你应该也把报错的那段信息也贴出来,才好判断什么错误。

另外,我不懂为什么你要在c++中用c的内存分配,这 ...

c语言写的习惯了,C++没系统学过。。。。。习惯用结构体,没想到用类
回复

使用道具 举报

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

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